package com.yida.data.attendance.dto;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import java.time.LocalTime;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * @date 2023-08-09 11:37:25
 */
@Data
public class AddAttendanceReportStrategyDTO {

    /**
     *
     */
    @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 = "")
    private Integer delFlag;

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

    /**
     * 0-教职工考勤推送，1学生考勤推送，2家长提醒
     */
    @ApiModelProperty(value = "0-教职工考勤推送，1学生考勤推送，2家长提醒")
    private Integer type;

    /**
     * 是否推送周报0-否，1是
     */
    @ApiModelProperty(value = "是否推送周报0-否，1是,默认0")
    private Integer weekReport = 0;


    @ApiModelProperty(value = "周报推送推送日期：小于周三，推送上月周。大于周三推送本周")
    private Integer weekReportDate;

    /**
     * 周报推送时间：每周一XX点
     */
    @ApiModelProperty(value = "周报推送时间：每周一XX点")
    @DateTimeFormat(pattern = "HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "HH:mm:ss")
    private LocalTime weekReportTime;


    /**
     * 是否推送月报0-否，1是
     */
    @ApiModelProperty(value = "是否推送月报0-否，1是,默认0")
    private Integer monthReport = 0;

    @ApiModelProperty(value = "月报推送推送日期：小于5号，推送上月。大于5号推送本月")
    @TableField("month_report_date")
    private Integer monthReportDate = 0;

    /**
     * 月报推送时间：每月1号XX点
     */
    @ApiModelProperty(value = "月报推送时间：每月1号XX点")
    @DateTimeFormat(pattern = "HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "HH:mm:ss")
    private LocalTime monthReportTime;

    /**
     * 是否推送迟到报告 0-否，1是
     */
    @ApiModelProperty(value = "是否推送迟到报告 0-否，1是,默认0")
    private Integer lateReport = 0;

    /**
     * 迟到报告推送时间：超过考勤开始时间XXX分钟
     */
    @ApiModelProperty(value = "迟到报告推送时间：超过考勤开始时间XXX分钟")
    private Integer lateReportTime;


    /**
     * 是否推送缺勤报告 0-否，1是
     */
    @ApiModelProperty(value = "是否推送缺勤报告 0-否，1是,默认0")
    private Integer missReport = 0;

    /**
     * 缺勤报告推送时间：超过考勤结束时间XXX分钟
     */
    @ApiModelProperty(value = "缺勤报告推送时间：超过考勤结束时间XXX分钟")
    private Integer missReportTime;


    /**
     * 考勤管理员是否推送报告，1是，0否
     */
    @ApiModelProperty(value = "考勤管理员是否推送报告，1是，0否,默认0")
    private Integer objManager = 0;


    /**
     * 指定人员：职工ID集合，逗号分隔
     */
    @ApiModelProperty(value = "指定人员：职工ID集合，逗号分隔")
    private String objStaffIds;

    /**
     * 家长入校/离校提醒：0否，1是
     */
    @ApiModelProperty(value = "家长入校/离校提醒：0否，1是,默认0")
    private Integer parentEnrollReport = 0;
}