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: zhangjing
 * @Time: 2022/12/28 11:21
 * @Classname: ZeroElementRevokeVO
 * @PackageName: com.hzs.member.base.vo
 */
@Data
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
public class ZeroElementRevokeVO extends BaseApprovalEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 会员主键
     */
    private Long pkId;
    /**
     * 会员主键集合
     */
    private List<Long> pkIdList;
    /**
     * 会员主键集合
     */
    private String pkIdListStr;

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

    /**
     * 会员姓名
     */
    @Excel(name = "会员姓名")
    private String memberName;
    /**
     * 联系方式
     */
    @Excel(name = "联系方式")
    private String phone;
    /**
     * 结算等级 会员等级
     */
    @Excel(name = "注册等级")
    private String pkSettleGradeVal;

    private Integer pkRegisterGrade;
    /**
     * 真实奖衔
     */
    @Excel(name = "真实奖衔")
    private String pkAwardsVal;
    /**
     * 隶属体系
     */
    @Excel(name = "隶属体系")
    private String vertexName;
    /**
     * 团队名称
     */
    @Excel(name = "隶属团队")
    private String teamName;
    /**
     * 推荐人编号
     */
    @Excel(name = "推荐人编号")
    private String parMemberCode;

    /**
     * 推荐人姓名
     */
    @Excel(name = "推荐人姓名")
    private String parMemberName;

    /**
     * 安置人编号
     */
    @Excel(name = "安置人编号")
    private String placeMemberCode;

    /**
     * 安置人姓名
     */
    @Excel(name = "安置人姓名")
    private String placeMemberName;
    /**
     * 隶属体系
     */
    private Integer vertexId;

    /**
     * 隶属团队
     */
    private Integer teamId;

    /**
     * 创建时间
     */
    @Excel(name = "创建日期",dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;
    /**
     * 结算国
     */
    private String shortName;

    /**
     * 结算国
     */
    private Integer pkSettleCountry;
    /**
     * 结算等级
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_GRADE)
    private Integer pkSettleGrade;

    /**
     * 真实奖衔
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_AWARD)
    private Integer pkAwards;

    /**
     * 签呈流程类型（1 免签呈 2免付费 3免签呈+免付费 4 需要签呈需要付费）
     */
    private Integer processType;

    /**
     * 零元撤单会员集合
     */
    @Transaction
    private List<ZeroElementRevokeVO>  zeroVOList;
    /**
     * 错误提示集合
     */
    private List<ZeroElementRevokeVO>  erroList;

    /**
     * 业务单号
     */
    private String businessNo;
    /**
     * 办理业务次数
     */
    private Integer changeNumber;

    /**
     * 审核状态  2  待审核  4 已驳回   5 已完成(审核成功)  枚举 ： EApproveStatus
     */
    private Integer approveStatus;

    /**
     * 修改编号业务记录表主键
     */
    private Long serviceLogId;
    /**
     * 费用
     */
    private BigDecimal cost;
    /**
     * 扣款币种类型
     */
    private Integer pkAccount;
    /**
     * 扣款币种翻译key
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_ACC)
    private Integer pkAccountKey;
    /**
     * 扣款币种翻译
     */
    private String pkAccountKeyVal;
    /**
     * 会员手续费
     */
    List<MemberAmountDTO> memberAmountDTOList;

    /**
     * 错误信息
     */
    private String errorMsg;
    /**
     * 国家
     */
    private Integer pkCountry;
    /**
     * 业务涨及会员ID列表 --提交审核必传
     */
    private Set<Long> pkMemberList;

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


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









}

