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_transac_order")
public class CardTransacOrderTable extends BaseTable {

    /**
     * 平台订单号
     */
    private String orderNo;

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

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

    /**
     * 交易流水号
     */
    private String tradeNo;

    /**
     * 原交易流水号
     */
    private String originTradeNo;

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

    /**
     * 交易金额
     */
    private BigDecimal amount;

    /**
     * 授权金额
     */
    private BigDecimal authorizedAmount;

    /**
     * 授权币种
     */
    private String authorizedCurrency;

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

    /**
     * 授权手续费币种
     */
    private String feeCurrency;

    /**
     * 到账金额。status=success返回
     */
    private BigDecimal receivedAmount;

    /**
     * 到账币种。status=success返回
     */
    private String receivedCurrency;

    /**
     * 跨境交易手续费
     */
    private BigDecimal crossBoardFee;

    /**
     * 跨境交易手续费币种
     */
    private String crossBoardFeeCurrency;

    /**
     * 结算金额。收到结算信息后推送
     */
    private BigDecimal settleAmount;

    /**
     * 结算币种。收到结算信息后推送
     */
    private String settleCurrency;

    /**
     * 结算日期。毫秒时间戳
     */
    private Long settleDate;

    /**
     * 授权代码
     */
    private String authorizationCode;

    /**
     * 商户名称
     */
    private String merchantName;

    /**
     * 类型。
     * auth：授权；
     * refund：退款；
     * verification：验证；
     * Void：撤销；
     * maintain_fee: 卡费（月费、年费、ATM提现费....）
     */
    private String type;

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

     /**
     * 状态。
      * authorized：已授权；
      * failed：失败；
      * succeed：成功；
     */
     private String  status;

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

    /**
     * 描述
     */
    private String description;

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

    /**
     * 商户名称
     */
    private String name;

    /**
     * 商户类别代码 (MCC)
     */
    private String categoryCode;

    /**
     * MCC 类别
     */
    private String category;

    /**
     * 商户所在国家。ISO 3166-1 alpha-2 或 ISO 3166-1 alpha-3
     */
    private String country;

    /**
     * 商业国家
     */
    private String state;

    /**
     * 商业城市
     */
    private String city;

    /**
     * 商家邮政编码
     */
    private String zipCode;

    /**
     * 商户 ID (MID)
     */
    private String mid;

    /**
     * 使用数字钱包进行交易
     */
    private String walletType;
}
