package jnpf.model.personnels.req.roster;

import cn.hutool.core.lang.RegexPool;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

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

/**
 * 确认到岗请求对象
 */
@Data
public class ConfirmOnDutyReq {
    /**
     * 入职表ID
     */
    @NotBlank(message = "入职表id不能为空")
    private String employmentId;
    /**
     * 手机号码
     */
    @NotBlank(message = "手机号码不能为空")
    @Length(min = 11, max = 11, message = "手机号码长度不能超过11位")
    @Pattern(regexp = RegexPool.MOBILE, message = "手机号码格式不正确")
    private String phone;

    /**
     * 员工姓名
     */
    @NotBlank(message = "字段名称不能为空")
    @Length(max = 20, message = "字段名称不能超过20字")
    private String name;

    /**
     * 员工类型
     * 26	全职
     * 27	兼职日薪
     * 28	实习
     * 29	劳务派遣
     * 30	退休返聘
     * 31	劳务外包
     * 32   兼职小时工
     */
    @NotBlank(message = "员工类型不能为空")
    private String workerType;


    /**
     * 员工状态
     * 301、预入职  302、试用 303、正式  304、待离职  305 离职
     */
    @NotBlank(message = "员工状态不能为空")
    private String workerStatus;


    /**
     * 入职日期，格式为yyyy-MM-dd HH:mm:ss
     */
    @NotNull(message = "实际入职日期不能为空")
    private Date actualStartDate;


    /**
     * 试用期
     * 100	无试用期
     * 101	1个月内
     * 102	1个月
     * 103	2个月
     * 104	3个月
     * 105	4个月
     * 106	5个月
     * 107	6个月
     * 108	7个月
     * 109	8个月
     */
    @NotBlank(message = "试用期不能为空")
    private String probationPeriod;


    /**
     * 试用期天数，如果是1个月内，这里就是天数
     */
    private String probationPeriodDay;

    /**
     * 计划转正日期，格式为yyyy-MM-dd HH:mm:ss
     */
    @NotNull(message = "计划转正日期不能为空")
    private Date planProbationaryDate;

    /**
     * 所属组织
     */
    @NotBlank(message = "组织不能为空")
    private String currOrg;

    /**
     * 当前岗位
     */
    @NotBlank(message = "岗位不能为空")
    private String currPosition;

    /**
     * 当前职等
     */
    @NotBlank(message = "职等不能为空")
    private String currRank;


    /**
     * 当前门店
     */

    private String currShopId;

    /**
     * 角色，多个以逗号分开
     */
    @NotBlank(message = "当前角色不能够为空")
    private String currRole;

    /**
     * 直属主管
     */
    private String currReportsTo;

    /**
     * 入职薪酬
     */
    @Digits(integer = 12, fraction = 2, message = "金额超过限制")
    private BigDecimal entrySalary;

    /**
     * 办公地点json字符串，{“address”：“xx路xx号xx座xx楼xx室”,“lng”：xx,“lat”：xx}
     */
    private String workAddress;

    /**
     * 工号
     */
    @Length(min = 0, max = 50, message = "工号长度不能超过50个字符")
    private String workerNo;
    /**
     * 合同公司
     */
    private String contractCompany;

    /**
     * 合同编号
     */
    private String contractNo;


    /**
     * 合同生效日期
     */
    private Date contractEffectiveDate;

    /**
     * 合同到期日期
     */
    private Date contractEndDate;

    /**
     * 合同附件
     */
    private String contractFile;

    /**
     * 合同类型
     */

    private String contractType;

    /**
     * 考勤组
     */
    private String attendanceGroup;

    /**
     * 是否有试岗期,0-没有，1-有
     */
    private Integer isTrialJob = 0;


    /**
     * 试岗天数
     */
    private Integer trialJobDay;

}