package com.crm.rely.backend.core.entity.user.info;

import com.crm.rely.backend.core.constant.Constants;
import lombok.Data;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class UserEntryUpdateEntity {

    private Long id;

    /**
     * 人员招聘ID
     */
    private Long hareId;

    /**
     * 姓名
     */
    private String entryName;

    /**
     * 1:未填写 2:待审核 3:hr已通过 4:hr核验失败
     */
    private Integer entryStatus;

    /**
     * 1:未核验 2:待核验 3:管理员核验通过 4:管理员核验失败
     */
    private Integer manageStatus;

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

    /**
     * 归属团队ID
     */
    private Long userId;

    /**
     * 区号
     */
    private String callingCode;

     /**
     * 联系电话
     */
    private String phoneNumbe;

    /**
     * 文件地址
     */
    private String entryFile;

    /**
     * 薪资账户
     */
    private String login;

    /**
     * 名
     */
    @NotNull(message = Constants.NAME_NOT_NULL)
    @NotBlank(message = Constants.NAME_NOT_NULL)
    private String firstName;

    /**
     * 姓
     */
    @NotNull(message = Constants.NAME_NOT_NULL)
    @NotBlank(message = Constants.NAME_NOT_NULL)
    private String lastName;

    /**
     * 英文名
     */
    private String englishName;

    /**
     * 性别 1:男 2:女
     */
    private Integer gender;

    /**
     * 出生日期
     */
    private Date birthday;

    private String nationality;

    private String country;

    private String password;

    /**
     * 联系人名字
     */
    private String emergencyContactName;

    /**
     * 联系人区号
     */
    private String emergencyContactCallingCode;

    /**
     * 联系人号码
     */
    private String emergencyContactPhoneNumbe;

    private String entry;

    private Long roleId;

    private String googleEmail;

    /**
     * 备注（失败原因）
     */
    private String entryDesc;

    /**
     * 薪资平台
     */
    @NotNull(message = Constants.PLATFORM_NOT_NULL)
    @NotBlank(message = Constants.PLATFORM_NOT_NULL)
    private String salaryPlatform;

    /**
     * 银行名称
     */
    private String bankName;

    /**
     * 持有人姓名
     */
    private String accountHoldersName;

    /**
     * 银行账户
     */
    private String bankAccountNumber;

    /**
     * 银行编码
     */
    private String bankCode;

    /**
     * 证件类型
     */
    @NotNull(message = "cardType_file_not_null")
    @NotBlank(message = "cardType_file_not_null")
    private String cardType;

    private BigDecimal salary;

    /**
     * 入职时间
     */
    private Date entryDate;

    private Long pid;

    /**
     * 销售类型
     * 1:普通销售
     * 2：销售经理
     */
    private Integer salesType;
    /**
     * 团队长ID
     */
    private Long leaderId;

    private String referralCode;

}
