package com.hzs.member.base.vo;

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: UpdateCodeVO
 * @PackageName: com.hzs.member.base.vo
 */
@Data
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
public class UpPolicyCurrencyVO extends BaseApprovalEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 会员主键
     */
    private Long pkId;
    /**
     * 会员主键
     */
    private Long pkMember;
    /**
     * 会员编号
     */
    @Excel(name = "会员编号")
    private String memberCode;
    /**
     * 会员姓名
     */
    @Excel(name = "会员姓名")
    private String memberName;
    /**
     * 真实奖衔
     */
    @Excel(name = "真实奖衔")
    private String pkAwardsVal;
    /**
     * 真实奖衔
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_AWARD)
    private Integer pkAwards;
    /**
     * 隶属体系
     */
    @Excel(name = "隶属体系")
    private String vertexName;
    /**
     * 隶属体系
     */
    private Integer pkBdVertex;

    /**
     * 隶属团队
     */
    @Excel(name = "隶属团队")
    private String teamName;
    /**
     * 隶属团队
     */
    private Integer pkTeamCode;

    /**
     * 联系方式
     */
    @Excel(name = "联系方式")
    private String phone;
    /**
     * 政策币启用状态 0 已启用 1已禁用 EnableStatus
     */
    @Transaction(transactionKey = EnumsPrefixConstants.ENABLE_STATUS)
    private Integer enableStatus;
    private Integer newEnableStatus;

    @Excel(name = "政策币业务")
    private String enableStatusVal;
    /**
     * 政策币扣款比例(%)
     */
    @Excel(name = "政策币扣款比例(%)")
    private BigDecimal deductMoney;
    private BigDecimal newDeductMoney;

    /**
     * 政策币转账状态 1允许 2禁止 EPopupType
     */
    @Transaction(transactionKey = EnumsPrefixConstants.POPUP_TYPE)
    private Integer transfer;
    @Excel(name = "政策币转账")
    private String transferVal;
    private Integer newTransfer;

    /**
     * 变更前值
     */
    private String oldValue;
    /**
     * 改变后
     */
    private String newValue;

    /**
     * 变更次数
     */
    private Integer changeNumber=0;
    /**
     * 创建日期
     */
    @Excel(name = "创建日期",dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;
    /**
     * 创建时间开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startDate;

    /**
     * 创建时间结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;
    /**
     * 签呈流程类型（1 免签呈 2免付费 3免签呈+免付费 4 需要签呈需要付费）
     */
    private Integer processType;

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

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

    /**
     * 费用
     */
    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;

    /**
     * 修改政策币集合
     */
    @Transaction
    private List<UpPolicyCurrencyVO> plculist;

    private Long pkCreator;








}

