package com.hzs.member.account.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
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.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * 充值申请VO
 *
 * @Description:
 * @Author: ljc
 * @Time: 2024/2/18 16:06
 * @Classname: CuMemberRechargeApplicationVO
 * @Package_name: com.hzs.member.account.vo
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CuMemberRechargeApplicationVO implements Serializable {
    private static final long serialVersionUID = 7443750201897818383L;

    private Long pkId;

    private Integer pkCountry;
    /**
     * 会员主键
     */
    private Long pkMember;

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

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

    /**
     * 汇款人
     */
    @Excel(name = "汇款人")
    private String remitter;

    /**
     * 汇款金额
     */
    @BigDecimalFormat()
    @Excel(name = "汇款金额", scale = 2)
    private BigDecimal remittanceAmount;

    /**
     * 汇款日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "汇款日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date remittanceDate;

    /**
     * 汇款说明
     */
    @Excel(name = "汇款说明")
    private String remittanceInstructions;

    /**
     * 申请状态(参照EPersonalServiceStatus 1：已申请 2：已通过 3：已驳回)
     */
    @Transaction(transactionKey = EnumsPrefixConstants.PERSONAL_STATUS)
    private Integer applicationStatus;

    /**
     * 申请状态
     */
    @Excel(name = "申请状态")
    private String applicationStatusVal;

    /**
     * 驳回说明
     */
    private String rejectionStatement;

    /**
     * 申请时间
     */
    @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 approveName;

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

    /**
     * 审核人
     */
    private Long approver;

    /**
     * 创建人
     */
    private Long pkCreator;

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

    /**
     * 汇款开始日期
     */
    private String remittanceStartDate;

    /**
     * 汇款结束日期
     */
    private String remittanceEndDate;


    /**
     * 审核开始时间
     */
    private String approveStartDate;

    /**
     * 审核结束时间
     */
    private String approveEndDate;

}
