package com.yida.data.common.core.entity.attendance;

import java.util.Date;

import lombok.Data;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

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

import io.swagger.annotations.ApiModelProperty;

/**
 * 教职工考勤规则 Entity
 *
 * @author ZYJ
 * @date 2021-09-27 18:56:21
 */
@Data
@TableName("edu_attendance_staff_rule")
public class EduAttendanceStaffRule {

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

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

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableField(value = "create_id", fill = FieldFill.INSERT)
    private Long createId;


    @ApiModelProperty(value = "")
    @TableField(value = "create_name", fill = FieldFill.INSERT)
    private String createName;

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

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableField(value = "update_id", fill = FieldFill.UPDATE)
    private Long updateId;

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

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

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

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

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

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

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

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

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

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

    @ApiModelProperty("进出对象名字")
    @TableField(exist = false)
    private List<String> objNames;

    @ApiModelProperty("管理员名字")
    @TableField(exist = false)
    private List<String> adminNames;

}
