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_type")
public class CardTypeTable extends BaseTable {

    /**
     * 卡片类型ID
     */
    private Integer cardTypeId;

    /**
     * 卡组织。
     * Visa；
     * MasterCard；
     * Discover
     */
    private String organization;

    /**
     * 发卡地区
     */
    private String country;

    /**
     * 卡BIN
     */
    private String bankCardBin;

    /**
     * 类型(0-Visa虚拟卡 1-Visa实体卡 2-MasterCard虚拟卡 3-MasterCard实体卡)
     */
    private String type;

    /**
     * 卡名称
     */
    private String cardName;

    /**
     * 卡描述
     */
    private String cardDesc;

    /**
     * 卡片价格
     */
    private BigDecimal cardPrice;

    /**
     * 卡片价格币种
     */
    private String cardPriceCurrency;

    /**
     * 支持的机构。仅供参考
     */
    private String support;

    /**
     * 高风险商户。在此场景下的消费将触发卡片取消风险控制
     */
    private String risk;

    /**
     * 开卡时是否需要持卡人
     */
    private Boolean needCardHolder;

    /**
     * 持卡人信息支持的国家/地区编码
     */
    private String supportHolderRegin;

    /**
     * 持卡人信息支持的手机区号
     */
    private String supportHolderAreaCode;

    /**
     * 开卡时是否需要进行充值
     */
    private Boolean needDepositForActiveCard;

    /**
     * 开卡时充值最低额度
     */
    private BigDecimal depositAmountMinQuotaForActiveCard;

    /**
     * 开卡时充值最大额度
     */
    private BigDecimal depositAmountMaxQuotaForActiveCard;

    /**
     * 卡本位币种
     */
    private String fiatCurrency;

    /**
     * 最大购卡数量。暂时无用
     */
    private Integer maxCount;

    /**
     * 卡片状态：0-禁用，1-启用
     */
    private String status;

    /**
     * 充值币种
     */
    private String rechargeCurrency;

    /**
     * 充值最小额度
     */
    private BigDecimal rechargeMinQuota;

    /**
     * 充值最大额度
     */
    private BigDecimal rechargeMaxQuota;

    /**
     * 精度
     */
    private Integer rechargeDigital;

    /**
     * 充值手续费率 1=1%
     */
    private BigDecimal rechargeFeeRate;

    /**
     * 充值固定手续费
     */
    private BigDecimal rechargeFixedFee;

    /**
     * 启用状态 0: 否 1:是
     */
    private Integer enableStatus;

    /**
     * 卡片类别 1:ucard 2:wasabi
     */
    private Integer cardCategory;

    /**
     * 是否开启开卡功能
     */
    private Boolean enableActiveCard;

    /**
     * 是否开启充值功能
     */
    private Boolean enableDeposit;

    /**
     * 是否开启冻结功能
     */
    private Boolean enableFreeze;

    /**
     * 是否开启解冻功能
     */
    private Boolean enableUnFreeze;

    /**
     * 持卡人最高购买数量限制
     */
    private Integer cardHolderMaxCardLimit;

    /**
     * 持卡人模型。
     * B2B B2C
     * 如果参数 needCardHolder 等于 true ，则需要创建持卡人，并且需要根据 B2B 还是 B2C 传递不同的持卡人参数。
     */
    private String cardHolderModel;

    /**
     * 设置免密支付金额限额（实体卡）
     */
    private Boolean supportSettingNoPinPaymentAmount;

    /**
     * 免密支付默认金额（实体卡）
     */
    private BigDecimal defaultNoPinPaymentAmount;

    /**
     * 免密支付最低金额（实体卡）
     */
    private BigDecimal noPinPaymentAmountMinQuota;

    /**
     * 免密支付最高金额（实体卡）
     */
    private BigDecimal noPinPaymentAmountMaxQuota;

 }