package com.hzs.member.base.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Excel;
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.member.account.dto.MemberAmountDTO;
import com.hzs.system.sys.dto.LoginUser;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * @description: 特殊业务-修改会员有效期休止期实体vo
 * @author: zhang jing
 * @date: 2024/6/4 11:11
 * @param:
 * @return:
 **/
@Data
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
public class UpdateExpireStopVO extends BaseApprovalEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 会员主键
     */
    private Long pkId;
    /**
     * 会员主键集合
     */
    private List<Long> pkIdList;
    /**
     * 会员编号
     */
    @Excel(name = "会员编号")
    private String memberCode;
    /**
     * 会员姓名
     */
    @Excel(name = "会员姓名")
    private String memberName;
    /**
     * 联系方式
     */
    @Excel(name = "联系方式")
    private String phone;

    /**
     * 变更前有效期
     */
    @Excel(name = "变更前有效期",dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expireDateOld;
    /**
     * 变更后有效期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expireDateNew;
    /**
     * 变更前休止期
     */
    @Excel(name = "变更前休止期",dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date stopDateOld;
    /**
     * 变更后休止期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date stopDateNew;
    /**
     * 变更前有效状态 EExpireStatus
     */
    private Integer expireStatusOld;
    /**
     * 变更后有效状态 EExpireStatus
     */
    private Integer expireStatusNew;
    /**
     * 变更前有效状态 EExpireStatus
     */
    private String expireStatusOldVal;
    /**
     * 变更后有效状态 EExpireStatus
     */
    private String expireStatusNewVal;




    /**
     * 变更次数
     */
    private Integer changeNumber=0;
    /**
     * 续约年限
     */
    @Excel(name = "续约年限(年)")
    private Integer years=1;

    /**
     * 审核状态  2  待审核  4 已驳回   5 已完成(审核成功)  枚举 ： EApproveStatus
     */
    @Excel(name = "审核状态")
    private String approveStatusVal;
    /**
     * 创建时间 变更日期
     */
    @Excel(name = "变更日期",dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date modifiedTime;
    /**
     * 签呈流程类型（1 免签呈 2免付费 3免签呈+免付费 4 需要签呈需要付费）
     */
    private Integer processType;

    /**
     * 业务诉求集合
     */
    private List<UpdateExpireStopVO> uesList;

    /**
     * 业务单号
     */
    private String businessNo;

    /**
     * 审核状态  2  待审核  4 已驳回   5 已完成(审核成功)  枚举 ： EApproveStatus
     */
    @Transaction(transactionKey = EnumsPrefixConstants.APPROVE_STATUS)
    private Integer approveStatus;

    /**
     * 修改编号业务记录表主键
     */
    private Long serviceLogId;

    /**
     * 错误信息
     */
    private String errorMsg;
    /**
     * 国家
     */
    private Integer pkCountry;
    /**
     * 业务涨及会员ID列表 --根据业务需求
     */
    private Set<Long> pkMemberList;

    /**
     * 当前登录用户信息
     */
    private LoginUser loginUser;

    /**
     * 创建人ID
     */
    @TableField("PK_CREATOR")
    private Long pkCreator;

    private String newValue;
    private String oldValue;










}

