package cn.iocoder.yudao.module.system.controller.admin.punchrecord.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 用户打卡记录 Response VO")
@Data
@ExcelIgnoreUnannotated
public class AttendancePunchRecordRespVO {

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "65")
    @ExcelProperty("编号")
    private Long id;

    @Schema(description = "考勤组管理员id", example = "11409")
    @ExcelProperty("考勤组管理员id")
    private Long userId;

    @Schema(description = "考勤组id", example = "22293")
    @ExcelProperty("考勤组id")
    private Long attendanceGroupId;

    @Schema(description = "班次id", example = "10780")
    @ExcelProperty("班次id")
    private Long attendanceGroupShiftId;

    @Schema(description = "班次子表id", example = "10780")
    @ExcelProperty("班次子表id")
    private Long attendanceGroupShiftItemId;

    @Schema(description = "考勤类型 1固定班制 2排班制", example = "2")
    @ExcelProperty("考勤类型 1固定班制 2排班制")
    private Integer type;

    @Schema(description = "打卡类型 1考勤机 2小程序范围打卡", example = "2")
    @ExcelProperty("打卡类型 1考勤机 2小程序范围打卡")
    private Integer punchType;

    @Schema(description = "上下班类型 0上班 1下班", example = "1")
    @ExcelProperty("上下班类型 0上班 1下班")
    private Integer workType;

    @Schema(description = "级别 1到～", example = "1")
    @ExcelProperty("级别 1到～")
    private Integer level;

    @Schema(description = "打卡状态 0正常 1迟到 2早退 3缺卡 4补卡", example = "1")
    @ExcelProperty("打卡状态 0正常 1迟到 2早退 3缺卡 4补卡")
    private Integer status;

    @Schema(description = "是否外勤 0否 1是", example = "1")
    @ExcelProperty("是否外勤 0否 1是")
    private Integer fieldServiceFlag;

    @Schema(description = "日期yyyy-MM-dd格式")
    @ExcelProperty("日期yyyy-MM-dd格式")
    private String dayTime;

    @Schema(description = "打卡时间")
    @ExcelProperty("打卡时间")
    private LocalDateTime punchTime;

    @Schema(description = "打卡备注", example = "你说的对")
    @ExcelProperty("打卡备注")
    private String remark;

    @Schema(description = "图片")
    @ExcelProperty("图片")
    private String image;

    @Schema(description = "用户打卡地点")
    private String punchAddress;

    @Schema(description = "迟到时长时间戳")
    @ExcelProperty("迟到时长时间戳")
    private Long lateTime;

    @Schema(description = "早退时长时间戳")
    @ExcelProperty("早退时长时间戳")
    private Long leaveEarlyTime;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}