package jnpf.model.personnels.req.roster;

import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import jnpf.model.common.PageDto;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;

/**
 * 花名册列表查询请求对象
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class StaffRosterListReq extends PageDto {

    /**
     * 关键词
     */
    private String keyWord;
    /**
     * 入职日期 开始 格式为yyyy-MM-dd HH:mm:ss
     */
    private Date startActualStartDate;

    /**
     * 入职日期 结束 格式为yyyy-MM-dd HH:mm:ss
     */
    private Date endActualStartDate;


    /**
     * 是否提交了入职登记表：0、未提交  1、已提交
     */
    private Integer isSubmitForm;


    /**
     * 合同类型
     */
    private String contractType;


    /**
     * 员工类型
     * 26	全职
     * 27	兼职日薪
     * 28	实习
     * 29	劳务派遣
     * 30	退休返聘
     * 31	劳务外包
     * 32   兼职小时工
     */
    private String workerType;

    @JsonIgnore
    private List<String> workerTypeList;

    /**
     *  工作状态，301、预入职  302、试用 303、正式  304、待离职  305 离职 306试岗
     */
    private String workerStatus;

    /**
     * 组织id
     */
    private String currOrg;

    /**
     * 岗位id
     */
    private String currPosition;

    /**
     * 职等id
     */
    private String currRank;

    /**
     * 只查部分用户[薪酬]
     */
    private List<String> userIds;

    /**
     * 用户姓名[薪酬]
     */
    private String likeUserName;
    /**
     * 组织筛选[薪酬]
     */
    private String targetOrganizeId;
    /**
     * 岗位筛选[薪酬]
     */
    private String targetPositionId;
    /**
     * 在职开始时间[薪酬]
     */
    private Date onlineWorkStartDate;
    /**
     * 在职结束时间[薪酬]
     */
    private Date onlineWorkEndDate;

    /**
     * 在职状态（对应薪酬系统的员工状态）
     * 取值参考：
     *(0, "在职"),
     *(1, "离职");
     */
    private Integer userWorkStatus;


    /**
     * 合同签署状态，500-未发起 501-待签署 502-已到期 503-已签署
     */
    private Integer contractStatus;

    /**
     * 数量点击筛选，0在职员工,1全职员工,2兼职员工,3实习员工,4待离职员工,5正式员工,6试用员工,7试岗员工
     */
    private Integer countType;

    /**
     * 是否查询权限 1 是 0否
     */
    private String isQueryAuth;
    /**
     * 出生日期(开始)
     */
    private String startBirthdayTime;
    /**
     * 出生日期(结束)
     */
    private String endBirthdayTime;

    private List<String> phoneNumberList;
    /**
     * 是否离职
     */
    private Integer isDepart;
    /**
     * 动态权限标识模块编码
     */
    private String moduleCode;
    /**
     * 动态权限 web / app
     */
    private String category;

    /**
     * 健康证状态：1-缺失，2-过期，3-临期，4-正常。
     */
    private Integer healthCertificateStatus;
}