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.math.BigDecimal;
import java.util.Date;

/**
 * 会员充值VO
 *
 * @Description:
 * @Author: ljc
 * @Time: 2022/10/8 9:30
 * @Classname: CuMemberRechargeVO
 * @Package_name: com.hzs.member.account.vo
 */
@EqualsAndHashCode(callSuper = true)
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CuMemberRechargeVO extends CuMemberBaseVO {


    /**
     * 主键
     */
    private Long pkId;

    /**
     * 充值类型
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_ACC)
    private Integer pkAccount;


    /**
     * 充值类型 翻译
     */
    @Excel(name = "钱包类型")
    private String pkAccountVal;

    /**
     * 交款方式
     */
    @Transaction(transactionKey = EnumsPrefixConstants.PAYMENT_TYPE)
    private Integer paymentMethod;


    @Excel(name = "交款方式")
    private String paymentMethodVal;
    /**
     * 充前余额
     */
    @BigDecimalFormat()
    @Excel(name = "充前余额", scale = 2)
    private BigDecimal paymentBeforeBalance;

    /**
     * 充值金额
     */
    @BigDecimalFormat()
    @Excel(name = "充值金额", scale = 2)
    private BigDecimal paymentAmount;

    /**
     * 余额
     */
    @BigDecimalFormat()
    @Excel(name = "当前余额", scale = 2)
    private BigDecimal paymentBalance;

    /**
     * 充值金额（本币）
     */
    @BigDecimalFormat()
    @Excel(name = "充值金额($)", scale = 2)
    private BigDecimal settlePaymentAmount;

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


    /**
     * 充值单号：对应trade表的来源单号
     */
    @Excel(name = "单据编号", scale = 2)
    private String rechargeCode;
    /**
     * 充值批次
     */
    @Excel(name = "充值批次")
    private String batch;
    /**
     * 操作人
     */
    @Excel(name = "操作人")
    private String creator;


    /**
     * 创建时间
     */
    @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 approverName;


    /**
     * 审核人
     */
    private String approver;
    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date approveTime;

    /**
     * 审核备注
     */
    private String approveRemarks;

    /**
     * 审核状态
     */
    @Transaction(transactionKey = EnumsPrefixConstants.APPROVE_RECHARGE_OPERATION)
    private Integer approveState;

    @Excel(name = "审核状态")
    private String approveStateVal;

    /**
     * 用户ID
     */
    private  Long pkMember;

    /**
     * 开始时间
     */
    private String startDate;
    /**
     * 结束时间
     */
    private String endDate;
    /**
     * 审核开始时间
     */
    private String startApproveTime;
    /**
     * 审核结束时间
     */
    private String endApproveTime;


}
