package com.hzs.member.param;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @Description: 后台查询会员的统一入口参数
 * @Author: sui q
 * @Time: 2022/10/13 9:41
 * @Classname: QueryMemberParam
 * @PackageName: com.hzs.member.param
 */
@Data
public class MemberParam implements Serializable {

    private static final long serialVersionUID = 1L;

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

    /**
     * 会员名称
     */
    private String memberName;

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

    /**
     * 手机号码
     */
    private String phone;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 证件号码
     */
    private String idCard;

    /**
     * 性别（0=未知,1=男,2=女）
     */
    private Integer sex;

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

    /**
     * 推荐人主键
     */
    private Long pkParent;

    /**
     * 推荐人姓名
     */
    private String parentName;

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

    /**
     * 安置人姓名
     */
    private String placeParentName;

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

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

    /**
     * 所属团队编号
     */
    private String teamName;

    /**
     * 报单中心编号
     */
    private String centerCode;

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

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

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

    /**
     * 开始时间
     */
    private Date startDate;

    /**
     * 结束时间
     */
    private Date endDate;

    /**
     * 支付时间
     */
    private Date payTime;

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

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

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

    /**
     * 顶点团队编号
     */
    private String vertexCode;

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

    /**
     * 钱包状态（0=正常,1=锁定）
     */
    private Integer walletStatus;

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

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

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

    /**
     * 手机验证码
     */
    private String code;

    @JsonIgnore
    public List<String > getValidConfirmField(){
        List<String> fieldList = new ArrayList<>();
        fieldList.add("memberCode");
        fieldList.add("memberName");
        fieldList.add("phone");
        fieldList.add("parent");
        fieldList.add("loginPassword");
        fieldList.add("payPassword");
        fieldList.add("code");
        return fieldList;
    }
}
