package cn.iocoder.yudao.module.system.controller.app.attendance.vo;

import cn.iocoder.yudao.module.system.dal.dataobject.attendance.group.AttendanceGroupDO;
import cn.iocoder.yudao.module.system.dal.dataobject.attendance.groupshift.AttendanceGroupShiftDO;
import cn.iocoder.yudao.module.system.service.attendance.punch.dto.AttendanceOnTheDayDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

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

@Data
@Accessors(chain = true)
public class AttendancePunchPageVO {
    @Schema(description = "是否在考勤组 0否 1是")
    private Integer inGroup = 1;
    @Schema(description = "当天是否需要考勤 0否 1是")
    private Integer todayNeedAttendance = 1;
    @Schema(description = "是否允许外勤打卡 0否 1是")
    private Integer fieldworkFlag;
    @Schema(description = "是否在打卡点 0否 1是")
    private Integer punchPoint;
    @Schema(description = "打卡类型(0上班卡 1下班卡 2迟到卡 3早退卡 4未到打卡时间)")
    private Integer punchType = 4;
    @Schema(description = "当天考勤列表")
    private List<AttendanceOnTheDayDTO> attendanceOnTheDayDTOS;

    /**
     * redisKey
     */
    private String redisKey;
    /**
     * 打卡数组当前下标
     */
    private Integer index;
    /**
     * 类型 0上班 1下班
     */
    private Integer type;
    /**
     * 应打卡时间
     */
    private LocalDateTime shouldPunchTime;
    /**
     * 打卡归属时间 （主要是为了统计夸天的）
     */
    private String targetDayStr;
    /**
     * 考勤组
     */
    private AttendanceGroupDO activationGroup;
    /**
     * 考勤组班次id
     */
    private Long attendanceGroupShiftId;
    /**
     * 考勤组班次
     */
    private AttendanceGroupShiftDO attendanceGroupShiftDO;

    /**
     * 考勤组班次子表
     */
    private Long attendanceGroupShiftItemId;
}
