package com.crm.rely.backend.core.pojo.table.ucard;

import com.crm.rely.backend.core.pojo.BaseTable;
import lombok.Data;

import javax.persistence.Entity;
import javax.persistence.Table;
import java.math.BigDecimal;

/**
 * 卡片申请表
 */
@Data
@Entity
@Table(name = "ucard_apply")
public class CardApplyTable extends BaseTable {

    /**
     * 唯一标识
     */
    private String uniqueId;

    /**
     * 手续费扣费流水号
     */
    private String serial;

    /**
     * 手续费退费流水号
     */
    private String refundSerial;

    /**
     * 是否优惠  1:账户 2:优惠
     */
    private Integer discountType;

    /**
     * 交易账户
     */
    private Long login;

    /**
     * 卡片费用
     */
    private BigDecimal cardFee;

    /**
     * 手续费类型：1-扣款，2-退款
     */
    private Integer tradeType;

    /**
     * 手续费状态：1-处理中，2-成功，3-失败
     */
    private Integer tradeStatus;

    /**
     * 卡片商户订单号
     */
    private String merchantOrderNo;

    /**
     * 持卡人商户订单号
     */
    private String holderMerchantOrderNo;

    /**
     * 卡片类型（通过卡片类型接口获取）
     */
    private Integer cardTypeId;

    /**
     * 持卡人id
     */
    private Long holderId;

    /**
     * 开卡时充值金额。不传默认最低额度（如果卡BIN需要首冲）值范围：
     * /merchant/core/mcb/card/cardTypes接口depositAmountMinQuotaForActiveCard <= amount <= depositAmountMaxQuotaForActiveCard
     */
    private BigDecimal amount;

    /**
     * 币种
     */
    private String currency;

    /**
     * 手续费
     */
    private BigDecimal fee;

    /**
     * 到账金额
     */
    private BigDecimal receivedAmount;

    /**
     * 到账币种
     */
    private String receivedCurrency;

    /**
     * 类型。
     * create：开卡；
     * deposit：充值；
     * cancel：销卡；
     * Freeze：冻结；
     * UnFreeze：解冻；
     * withdraw：提现；
     * update_pin: 更新PIN
     * blocked: 锁卡
     */
    private String type;

    /**
     * 子类型。
     * DEFAULT：默认;
     * REFUND：卡余额退款。一般是指卡被注销后商家侧发起的退款。因为卡被注销了，退款不能退还到卡内，需要提现到客户钱包
     */
    private String subType;

    /**
     * 订单号（用于查询开卡进度)
     */
    private String orderNo;

    /**
     * 卡片号
     */
    private String cardNo;

    /**
     * 实体卡卡号
     */
    private String cardNumber;

    /**
     * 状态(0-处理中 1-开卡成功）
     */
    private String status;

    /**
     * 备注
     */
    private String remark;

    /**
     * 交易时间。毫秒时间戳
     */
    private Long transactionTime;

    /**
     * 审核流位置
     */
    private String statusFlowLocation;

    /**
     * 持卡人状态
     */
    private String holderStatus;

    /**
     * 状态描述
     */
    private String holderDescription;

    /**
     * 备注
     */
    private String respMsg;

    /**
     * 审核状态：1，审核中，2 审核通过，3 审核拒绝
     */
    private Integer approveStatus;

    /**
     * 审核描述
     */
    private String approveDesc;

    /**
     * 手机国际区号
     */
    private String areaCode;

    /**
     * 手机号
     */
    private String mobile;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 姓(只能是英文，单词之间支持一个英文空格, 长度不能超过64)
     */
    private String lastName;

    /**
     * 名(只能是英文，单词之间支持一个英文空格, 长度不能超过64)
     */
    private String firstName;

    /**
     * 邮寄国家
     */
    private String mailingCountry;

    /**
     * 邮寄城市
     */
    private String mailingTown;

    /**
     * 邮寄邮编
     */
    private String mailingPostCode;

    /**
     * 邮寄地址
     */
    private String mailingAddress;

    /**
     * 邮寄地址 中文
     */
    private String mailingAddressCn;

    /**
     * 邮寄电话
     */
    private String mailingMobile;
    /**
     * 邮寄手机区号
     */
    private String mailingAreaCode;


}