package com.yida.data.attendance.vo;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.entity.attendance.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author ccl
 */
@Data
public class FindStaffRuleVO {

    @ApiModelProperty(value = "")
    private Long id;

    /**
     *
     */
    @ApiModelProperty(value = "")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createDate;

    /**
     *
     */
    @ApiModelProperty(value = "")
    private Long createId;


    @ApiModelProperty(value = "")
    private String createName;

    /**
     *
     */
    @ApiModelProperty(value = "")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateDate;

    /**
     *
     */
    @ApiModelProperty(value = "")
    private Long updateId;

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableLogic(value = "0", delval = "1")
    private Integer delFlag;

    /**
     * 考勤规则名称
     */
    @ApiModelProperty(value = "考勤规则名称")
    private String name;

    /**
     * 0-固定上下班时间
     */
    @ApiModelProperty(value = "0-固定上下班时间")
    private Integer type;

    /**
     * 打卡日期，1-周一，2-周二....多个用','连接
     */
    @ApiModelProperty(value = "打卡日期，1-周一，2-周二....多个用','连接")
    private String week;

    /**
     * 节假日是否打卡，0-是，1-否
     */
    @ApiModelProperty(value = "节假日是否打卡，0-是，1-否")
    private Integer holidayAttendance;

    /**
     * 学校id
     */
    @ApiModelProperty(value = "学校id")
    private Long schoolId;

    /**
     * 管理员打卡规则内容权限，0-无，1-有
     */
    @ApiModelProperty(value = "管理员打卡规则内容权限，0-无，1-有")
    private Integer roleRule;

    /**
     * 管理员打卡人员与白名单权限，0-无，1-有
     */
    @ApiModelProperty(value = "管理员打卡人员与白名单权限，0-无，1-有")
    private Integer roleUser;

    /**
     * 管理员节假日与特殊日期权限，0-无，1-有
     */
    @ApiModelProperty(value = "管理员节假日与特殊日期权限，0-无，1-有")
    private Integer roleDate;

    /**
     * 管理员打卡提醒权限，0-无，1-有
     */
    @ApiModelProperty(value = "管理员打卡提醒权限，0-无，1-有")
    private Integer roleRemind;

    @ApiModelProperty("使用人员，可以是部门")
    private List<EduAttendanceStaffRuleObj> objStaffs;

    @ApiModelProperty("管理人员")
    private List<EduAttendanceStaffRuleAdmin> adminStaffs;

    @ApiModelProperty("白名单")
    private List<EduAttendanceStaffRuleWhiteList> whiteList;

    @ApiModelProperty("管理范围")
    private List<EduAttendanceStaffRuleAdminRange> adminRanges;

    @ApiModelProperty("打卡时段")
    private List<EduAttendanceStaffRuleTime> ruleTimes;

    @ApiModelProperty("特殊时段")
    private List<EduAttendanceStaffRuleSpecialDate> specialDate;

    @ApiModelProperty("打卡提醒")
    private List<EduAttendanceStaffRuleRemind> ruleReminds;

    @ApiModelProperty("打卡设备")
    private List<Long> ruleDevices;
}
