package com.yd.csf.feign.dto.csfclientuser;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yd.csf.feign.dto.clientrole.ApiClientRoleDTO;
import com.yd.csf.feign.dto.rule.ApiRuleDTO;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;

@Data
public class ApiCsfClientUserDTO {

    /**
     * 绑定的角色列表（转介人、签单员、合伙人等）
     */
    @NotEmpty(message = "角色列表不能为空")
    private List<ApiClientRoleDTO> roleDTOList;

    /**
     * 姓名
     */
    @NotBlank(message = "姓名不能为空")
    private String name;

    /**
     * 性别(0:未知 1:男 2:女)
     */
    private String gender;

    /**
     * 当前等级编码
     */
    private String currentGradeCode;

    /**
     * 手机号
     */
    @NotBlank(message = "手机号不能为空")
    private String phone;

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

    /**
     * 合同签订日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date contractSigningDate;

    /**
     * 所属团队表唯一业务ID
     */
    private String teamBizId;

    /**
     * 所属团队名称
     */
    @NotBlank(message = "所属团队名称不能为空")
    private String teamName;

    /**
     * 所属公司ID（中台部门唯一标识(业务ID)）
     */
    @NotBlank(message = "所属公司ID不能为空")
    private String deptBizId;

    /**
     * 所属公司名称（中台部门名称）
     */
    @NotBlank(message = "所属公司名称不能为空")
    private String deptName;

    /**
     * 绑定的基本法配置表唯一业务ID列表（可以勾选多个）
     */
    private List<ApiRuleDTO> ruleDTOList;

    /**
     * 初始化等级编码
     */
    @NotBlank(message = "初始化等级编码不能为空")
    private String initGradeCode;

    /**
     * 证件类型
     */
    private String cardType;

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

    /**
     * 离职日
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date lastWorkingDay;

    /**
     * 在职状态: 0-在职, 1-离职
     */
    private String employmentStatus;
}
