package com.hzs.member.handlebusiness.vo;

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.List;

/**
 * 业务办理会员信息Vo
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BusinessMemberVO implements Serializable {


    private static final long serialVersionUID = 919805198369168293L;
    /**
     * 主键ID
     */
    private Integer pkId;

    /**
     * 会员ID
     */
    private Long pkMember;

    /**
     * 会员编号
     */
    private String memberCode;

    /**
     * 审批业务类型来源于  枚举： EApprovalBusiness
     */
    @Transaction(transactionKey = EnumsPrefixConstants.APPROVAL_BUSINESS)
    private Integer businessType;
    /**
     * 审批业务类型来源于  枚举： EApprovalBusiness
     */
    private String businessTypeVal;

    /**
     * 原值
     */
    private String oldValue;

    /**
     * 新值
     */
    private String newValue;

    /**
     * 单笔扣款金额
     */
    private BigDecimal singleAmount;

    /**
     * 合计扣款金额
     */
    private BigDecimal totalAmount;

    /**
     * 审核次数
     */
    private Integer approveNumber;

    /**
     * 业务单号
     */
    private String businessNo;
    /**
     * 会员姓名
     */
    private String memberName;
    /**
     * 变更后会员姓名
     */
    private String newMemberName;

    /**
     * 联系方式
     */
    private String phone;
    /**
     * 变更后联系方式
     */
    private String newPhone;
    /**
     * 注册等级
     */
    private Integer pkRegisterGrade;
    /**
     * 变更前注册等级
     */
    private String oldPkRegisterGrade;
    /**
     * 变更前注册等级
     */
    private String newPkRegisterGrade;
    /**
     * 注册等级名称
     */
    private String gradeName;
    /**
     * 结算等级
     */
    private Integer pkSettleGrade;
    /**
     * 变更前结算等级
     */
    private String oldPkSettleGrade;
    /**
     * 变更后结算等级
     */
    private String newPkSettleGrade;

    /**
     * 结算等级名称
     */
    private String settleGradeName;
    /**
     * 真实奖衔
     */
    private Integer pkAwards;
    /**
     * 历史最高荣誉奖衔
     */
    private Integer pkMaxAwards;

    /**
     * 真实奖衔
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_AWARD)
    private Integer award;
    /**
     * 真实奖衔翻译
     */
    private String awardVal;
    /**
     * 变更前真实奖衔
     */
    private String oldPkAwards;
    /**
     * 变更后真实奖衔
     */
    private String newPkAwards;

    /**
     * 变更前历史最高真实奖衔
     */
    private String oldPkMaxAwards;
    /**
     * 变更后历史最高真实奖衔
     */
    private String newPkMaxAwards;

    /**
     * 奖衔名称
     */
    private String awardsName;
    /**
     * 自然国
     */
    private Integer pkCountry;
    /**
     * 变更前自然国
     */
    private String oldPkCountry;
    /**
     * 变更后自然国
     */
    private String newPkCountry;
    /**
     * 自然国家简称
     */
    private String shortName;
    /**
     * 结算国
     */
    private Integer pkSettleCountry;
    /**
     * 结算国简称
     */
    private String settleShortName;
    /**
     * 账号登录状态 （0=正常,1=限制登录(仅登录,无操作),2=禁止登录（不能登录）） EAccountStatus
     */
    private Integer accountStatus;
    /**
     * 变更前账号登录状态 （0=正常,1=限制登录(仅登录,无操作),2=禁止登录（不能登录））
     */
    private String oldAccountStatus;
    /**
     * 变更后账号登录状态 （0=正常,1=限制登录(仅登录,无操作),2=禁止登录（不能登录））
     */
    private String newAccountStatus;
    /**
     * 收益状态 (0=正常，1=烧伤) EIncomeStatus
     */
    @Transaction(transactionKey = EnumsPrefixConstants.INCOME_STATUS)
    private Integer incomeStatus;
    private String incomeStatusVal;

    /**
     * 复购免考（0=是,1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
    private Integer purchaseStatus;
    private String purchaseStatusVal;
    /**
     * 复购免考后（0=是,1=否）
     */
    private Integer newPurchasStatus;
    /**
     * 分红免考（0=是,1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
    private Integer shareStatus;
    private String shareStatusVal;
    /**
     * 分红免考后（0=是,1=否）
     */
    private Integer newShareStatus;
    /**
     * 注册权限 ERegistrationAuthority
     */
    @Transaction(transactionKey = EnumsPrefixConstants.REGISTRATION_AUTHORITY)
    private Integer registerAuthority;
    private String registerAuthorityVal;

    /**
     * 变更前注册权限
     */
    private String oldRegisterAuthority;
    /**
     * 变更后注册权限
     */
    private String newRegisterAuthority;

    /**
     * 是否实名认证（0=已认证,1=未认证）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.YES_NO_ATTESTATION)
    private Integer isRealName;
    private String isRealNameVal;


    /**
     * 能否转账（0=是,1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
    private Integer isTransfer;
    private String isTransferVal;
    /**
     * 能否提现（0=是,1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
    private Integer isWithdraw;
    private String isWithdrawVal;
    /**
     * 收益状态（0=是,1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
    private Integer isConsume;
    private String isConsumeVal;

    /**
     * 变更前收益状态 (0=正常,1=停止收益) EIncomeStatus
     */
    private String oldIncomeStatus;
    /**
     * 变更后收益状态 (0=正常,1=停止收益) EIncomeStatus
     */
    private String newIncomeStatus;
    /**
     * 转账状态  (0=正常, 1=全网)
     */
    @Transaction(transactionKey = EnumsPrefixConstants.TRANSFER_STATUS)
    private Integer transferStatus;
    private String transferStatusVal;

    /**
     * 会员编号
     */
    private List<Long> pkMemberList;

    /**
     * 重置密码前
     */
    private String oldResetPassword;
    /**
     * 重置密码后
     */
    private String newResetPassword;

    /**
     * 重置支付密码前
     */
    private String oldPaymentPassword;
    /**
     * 重置支付密码后
     */
    private String newPaymentPassword;
    /**
     * 变更前钱包状态
     */
    private String oldWalletStatus;
    /**
     * 变更后钱包状态
     */
    private String newWalletStatus;

    /**
     * 变更前重置银行
     */
    private String oldBank;
    /**
     * 变更后重置银行
     */
    private String newBank;
    /**
     * 变更前免考状态
     */
    private String oldAvoid;
    /**
     * 变更后免考状态
     */
    private String newAvoid;

    /**
     * 变更前实名认证
     */
    private String oldIsRealName;
    /**
     * 变更后实名认证
     */
    private String newIsRealName;

    /**
     * 变更前是否办理政策币
     */
    private String oldPolicyExist;
    /**
     * 变更后是否办理政策币
     */
    private String newPolicyExist;
    /**
     * 变更前政策币是否转账
     */
    private String oldPolicyChange;
    /**
     * 变更后政策币是否转账
     */
    private String newPolicyChange;
    /**
     * 变更后政策币比例
     */
    private String newPolicyScale;
    /**
     * 变更前政策币比例
     */
    private String oldPolicyScale;

    /**
     * 合计金额
     */
    private BigDecimal totalMoney;

    /**
     * 单笔扣款金额-变更会员姓名+变更联系方式
     */
    private BigDecimal singleAmount100;

    /**
     * 单笔扣款金额-重置会员密码
     */
    private BigDecimal singleAmount103;
    /**
     * 单笔扣款金额-修改注册等级
     */
    private BigDecimal singleAmount106;
    /**
     * 单笔扣款金额-修改奖衔
     */
    private BigDecimal singleAmount107;
    /**
     * 单笔扣款金额-修改会员礼包收货地址
     */
    private BigDecimal singleAmount108;
    /**
     * 单笔扣款金额-重置银行信息
     */
    private BigDecimal singleAmount112;
    /**
     * 单笔扣款金额-修改结算等级
     */
    private BigDecimal singleAmount113;
    /**
     * 单笔扣款金额-修改自然国
     */
    private BigDecimal singleAmount115;
    /**
     * 单笔扣款金额-修改登录状态
     */
    private BigDecimal singleAmount116;
    /**
     * 单笔扣款金额-修改收益状态
     */
    private BigDecimal singleAmount117;
    /**
     * 单笔扣款金额-修改钱包状态
     */
    private BigDecimal singleAmount118;
    /**
     * 单笔扣款金额-修改免考状态
     */
    private BigDecimal singleAmount119;
    /**
     * 单笔扣款金额-修改注册权限
     */
    private BigDecimal singleAmount120;

    /**
     * 单笔扣款金额-合计
     */
    private BigDecimal singleAmountTotal;

    @Transaction(transactionKey = EnumsPrefixConstants.KEY_ACC)
    private Integer pkAccountKey;
    private String pkAccountKeyVal;


}
