package com.hzs.member.account.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.hzs.common.core.annotation.BigDecimalFormat;
import com.hzs.common.core.annotation.Excel;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 会员转账表
 * </p>
 *
 * @author hzs
 * @since 2022-09-06
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
public class CuMemberTransferVO implements Serializable {

    private static final long serialVersionUID = -825250128711690831L;
    /**
     * 主键
     */
    private Long pkId;

    @JsonIgnore
    private Integer pkCountry;

    /**
     * 会员编号
     */
    @Excel(name = "转出编号")
    private String memberCode;

    /**
     * 会员姓名
     */
    @Excel(name = "转出姓名")
    private String memberName;

    /**
     * 转出钱包
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_ACC)
    private Integer pkAccount;
    /**
     * 转出钱包 翻译
     */
    @Excel(name = "接受钱包")
    private String pkAccountVal;

    /**
     * 转账金额
     */
    @Excel(name = "转账金额", scale = 2)
    @BigDecimalFormat()
    private BigDecimal transferMoney;


    /**
     * 转账金额(本币)
     */
    @Excel(name = "转账金额($)", scale = 2)
    @BigDecimalFormat()
    private BigDecimal settleTransferMoney;

    /**
     * 转账手续费
     */
    @Excel(name = "转账手续费", scale = 2)
    @BigDecimalFormat()
    private BigDecimal serviceCharge;

    /**
     * 转账手续费(本币)
     */
    @Excel(name = "转账手续费($)", scale = 2)
    @BigDecimalFormat()
    private BigDecimal settleServiceCharge;

    /**
     * 会员编号
     */
    @Excel(name = "接收编号")
    private String toMemberCode;

    /**
     * 会员姓名
     */
    @Excel(name = "接收姓名")
    private String toMemberName;


    /**
     * 转入编号
     */
    private Long toPkMember;

    /**
     * 转入账户类型(来源于参照：币种配置)
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_ACC)
    private Integer pkToAccount;

    @Excel(name = "接收钱包")
    private String pkToAccountVal;

    /**
     * 转账金额
     */
    @Excel(name = "接收金额", scale = 2)
    @BigDecimalFormat()
    private BigDecimal issuedAmount;

    /**
     * 转账金额(本币)
     */
    @Excel(name = "接收金额($)", scale = 2)
    @BigDecimalFormat()
    private BigDecimal settleIssuedAmount;

    /**
     * 汇率
     */
    @Excel(name = "汇率", scale = 4)
    @BigDecimalFormat("#0.0000")
    private BigDecimal exchangeRate;

    /**
     * 申请时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "转账时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;

    /**
     * 备注
     */
    @Excel(name = "交易备注")
    private String remarks;

    /**
     * 单据编号
     */
    @Excel(name = "单据编号")
    private String transferCode;

    /**
     * 已选取的ID
     */
    private List<Long> pkIds;

    /**
     * 开始时间
     */
    private String startDate;
    /**
     * 结束时间
     */
    private String endDate;

}
