package com.hzs.member.self.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import com.hzs.common.core.web.domain.BaseApprovalEntity;
import com.hzs.system.sys.dto.LoginUser;
import lombok.*;

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

/**
 * 户籍变更VO
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DomicileChangeVO extends BaseApprovalEntity implements Serializable {
    private static final long serialVersionUID = -1902903236338507971L;

    private Long pkId;

    /**
     * 会员编号
     */
    private String memberCode;
    /**
     * 会员名称
     */
    private String memberName;


    /**
     * 联系方式
     */
    private String phone;

    /**
     * 变更联系方式
     */
    private String changePhone;
    /**
     * 变更会员名称
     */
    private String changeMemberName;


    /**
     * 证件正面
     */
    private String idFront;

    /**
     * 证件反面
     */
    private String idBack;


    /**
     * 变更证件正面
     */
    private String changeIdFront;

    /**
     * 变更证件反面
     */
    private String changeIdBack;

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

    /**
     * 变更次数
     */
    private Integer changeNum;

    /**
     * 国家ID
     */
    private Integer pkCountry;

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

    /**
     * 扣费金额
     */
    private BigDecimal amount;

    /**
     * 币种
     */
    private Integer pkAccount;

    /**
     * 审核状态 0审核中 1审核通过·· 2审核驳回   枚举 ： EModifyRecordStatus
     */
    @Transaction(transactionKey = EnumsPrefixConstants.APPROVE_RECHARGE_OPERATION)
    private Integer approveStatus;

    private String approveStatusVal;

    /**
     * 验证码
     */
    private String verificationCode;


    private LoginUser loginUser;

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

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;

    /**
     * 审批业务类型来源于  枚举： EApprovalBusiness
     */
    private Integer editType;

    /**
     * 情况说明
     */
    private String description;

    /**
     * 业务单号
     */

    private String businessNo;

    private Long pkModified;

    /**
     * 申请开始时间
     */
    private String startDate;
    /**
     * 申请结束时间
     */
    private String endDate;
    /**
     * 驳回信息
     */
    private String rejectMsg;


}
