package com.hzs.bonus.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 lombok.*;

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

/**
 * 会员真实信息VO
 *
 * @author hzs
 * @since 2022-08-04
 */
@Data
public class MemberRealInfoVO {

    private static final long serialVersionUID = 1L;
    /**
     * 用户ID
     */
    private Long pkId;

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

    /**
     * 会员姓名
     */
    @Excel(name = "会员姓名", sort = 2)
    private String memberName;

    /**
     * 会员类型分类（0=正常（正常 空单 嗨粉） 1=死点（死点））
     */
    private Integer category;
    /**
     * 会员类型（0.正常 1.空单 2.死点 4.嗨粉 5.商城小程序游客）
     */
    private Integer customerType;

    /**
     * 手机号码
     */
    @Excel(name = "联系方式", sort = 3)
    private String phone;

    /**
     * 邮箱
     */
    @Excel(name = "邮箱地址",sort=20)
    private String email;

    /**
     * 证件号码
     */
    @Excel(name = "证件号码",sort=10)
    private String idCard;
    /**
     * 证件类型 ECardType
     */
    @Transaction(transactionKey = EnumsPrefixConstants.CARD_TYPE)
    private Integer cardType;

    /**
     * 性别（0=未知,1=男,2=女）Esex
     */
    @Transaction(transactionKey = EnumsPrefixConstants.SEX)
    private Integer sex;

    /**
     * 出生日期（年月日）
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期",sort=8)
    private Date birthDate;

    /**
     * 结算国
     */
    private Integer pkSettleCountry;

    /**
     * 推荐人编号
     */
    private Long pkParent;

    /**
     * 安置人编号
     */
    private Long pkPlaceParent;

    /**
     * 安置部门
     */
    private Integer placeDept;

    /**
     * 所属团队编号
     */
    private Long pkTeamCode;

    /**
     * 报单中心编号
     */
    private Long pkCenterCode;

    /**
     * 数据来源（1=PC端,2=APP,3=H5）
     */
    private Integer source;

    /**
     * 注册等级
     */
    private Integer pkRegisterGrade;

    /**
     * 结算等级
     */
    private Integer pkSettleGrade;

    /**
     * 真实奖衔
     */
    private Integer pkAwards;

    /**
     * 消费金额
     */
    private BigDecimal consumeMoney;

    /**
     * 消费业绩
     */
    private BigDecimal consumeAchieve;

    /**
     * 复购免考（0=是,1=否）
     */
    private Integer purchaseStatus;

    /**
     * 分红免考（0=是,1=否）
     */
    private Integer shareStatus;

    /**
     * 支付时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间",dateFormat = "yyyy-MM-dd HH:mm:ss",sort=22)
    private Date payTime;

    /**
     * 支付状态
     */
    private Integer payStatus;

    /**
     * 登录密码
     */
    private String loginPwd;

    /**
     * 支付密码
     */
    private String payPwd;

    /**
     * 登录密码明文
     */
    private String loginPassword;

    /**
     * 支付密码明文
     */
    private String payPassword;

    /**
     * 修改次数
     */
    private Integer editNumber;

    /**
     * 注册权限（0=普通用户,1=报单中心,2=服务中心）
     */
    private Integer registerAuthority;

    /**
     * 顶点编号
     */
    private Long pkVertex;

    /**
     * 账号状态（0=正常,1=冻结,2=封停）
     */
    private Integer accountStatus;

    /**
     * 订单来源 (1=实单注册,2=空单注册)
     */
    private Integer orderSource;

    /**
     *是否实名认证（0=是,1=否）
     */
    private Integer isRealName;

    /**
     *是否认证营业执照（0=是,1=否）
     */
    private Integer isBusLicense;

    /**
     *是否认证创客空间（0=是,1=否）
     */
    private Integer isMakerSpace;

    /**
     * 收益状态 (0=正常,1=停止收益)
     */
    private Integer incomeStatus;
    /**
     * 变更次数
     */
    private Integer changeNumber;
    /**
     * 微信
     */
    private String wechat;

    /**
     * 会员昵称
     */
    private String nickName;

    /**
     * 会员头像
     */
    private String headPath;
    /**
     * 修改直推次数
     */
    @Excel(name = "修改直推次数",sort=23)
    private Integer directPushNumber=0;
    /**
     * 是否是经销商 0 是 1 否
     */
    private Integer isDealer;
    /**
     * 系统级别
     */
    private Integer systemLevel;
    /**
     * 讲师级别
     */
    private Integer lecturerLevel;
    /**
     * 是否认证超级工作室 0 是 1否
     */
    private Integer superStudio;

    /**
     * 全球编号
     */
    private String globalCode;

    /**
     * 国家编号
     */
    private String countryCode;
    /**
     * 创建人ID
     */
    private Long pkCreator;

    /**
     * 认证日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "认证日期",sort=21)
    private Date certificationTime;

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

    /**
     * 修改人ID
     */
    private Long pkModified;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date modifiedTime;

    /**
     * 逻辑删除 (0=未删除，1已删除)
     */
    private Integer delFlag;

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

    /**
     * 推荐编号
     */
    private String parent;

    /**
     * 安置编号
     */
    private String placeParent;

    /**
     * 空单回填金额 （奖金账户）
     */
    private BigDecimal lockAccount4;

    /**
     * 注册等级翻译key
     */
    private Integer registerGradeKey;
    /**
     * 结算等级翻译key
     */
    private Integer settleGradeKey;
    /**
     * 奖衔翻译key
     */
    private Integer awardsKey;
    /***
     * 证件正面
     */
    private String idFront;
    /**
     * 证件反面
     */
    private String idBack;

    /**
     * 省id
     */
    private Integer pkProvince;
    /**
     * 省名称
     */
    @Excel(name = "省",sort=11)
    private String provinceName;
    /**
     * 市id
     */
    private Integer pkCity;
    /**
     * 市名称
     */
    @Excel(name = "市",sort=12)
    private String cityName;
    /**
     * 区县id
     */
    private Integer pkCounty;
    /**
     * 区县名
     */
    @Excel(name = "区/县",sort=13)
    private String countyName;
    /**
     * 详细地址
     */
    @Excel(name = "详细地址",sort=14)
    private String address;
    /**
     * 银行名称
     */
    @Excel(name = "银行名称",sort=15)
    private String bankName;
    /**
     * 支行名称
     */
    @Excel(name = "支行名称",sort=16)
    private String subBankName;
    /**
     *  真实姓名（开户姓名）
     */
    @Excel(name = "开户姓名",sort=17)
    private String accountName;
    /**
     * 证件类型 字符
     */
    @Excel(name = "证件类型",sort=9)
    private String cardTypeVal;

    /**
     * 预留电话
     */
    @Excel(name = "预留电话",sort=18)
    private String reservedPhone;
    /**
     * 银行卡号
     */
    @Excel(name = "银行卡号",sort=19)
    private String cardNumber;


    /**
     * 证件类型（认证信息字段）
     */
    private Integer idType;

    /**
     * 证件类型（认证信息字段）
     */
    private String idTypeVal;
    /**
     * 推荐订单数
     */
    private Long recommendedOrderNumber;
    /**
     * 性别（0=未知,1=男,2=女）
     */
    @Excel(name = "性别",sort=7)
    private String sexVal;

    /**
     * 结算等级 字符
     */
    @Excel(name = "结算等级",sort=5)
    private String settleGradeVal;

    /**
     * 真实奖衔 字符
     */
    @Excel(name = "真实奖衔",sort=6)
    private String awardsVal;

    /**
     * 注册等级 字符
     */
    @Excel(name = "注册等级",sort=4)
    private String registerGradeVal;

    private Integer gradeValue;

    /**
     * 团队编号
     */
    private String teamCode;

    /**
     * 团队名称
     */
    private String teamName;

}
