package cn.iocoder.yudao.module.system.dal.dataobject.attendance.punchrecord;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 用户打卡记录 DO
 *
 * @author 艾楷
 */
@TableName("kq_attendance_punch_record")
@KeySequence("kq_attendance_punch_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AttendancePunchRecordDO extends BaseDO {

    /**
     * 编号
     */
    @TableId
    private Long id;
    /**
     * 考勤组管理员id
     */
    private Long userId;
    /**
     * 考勤组id
     */
    private Long attendanceGroupId;
    /**
     * 班次id
     */
    private Long attendanceGroupShiftId;
    /**
     * 班次子表id
     */
    private Long attendanceGroupShiftItemId;
    /**
     * 考勤类型 1固定班制 2排班制
     */
    private Integer type;
    /**
     * 打卡类型 1考勤机 2小程序范围打卡
     */
    private Integer punchType;

    /**
     * 上下班类型 0上班 1下班
     */
    private Integer workType;

    /**
     * 级别 1到～
     */
    private Integer level;

    /**
     * 打卡状态 0正常 1迟到 2早退 3缺卡 4补卡
     */
    private Integer status;
    /**
     * 是否外勤 0否 1是
     */
    private Integer fieldServiceFlag;
    /**
     * 日期yyyy-MM-dd格式
     */
    private String dayTime;
    /**
     * 打卡时间
     */
    private LocalDateTime punchTime;
    /**
     * 应打卡时间
     */
    private LocalDateTime shouldPunchTime;
    /**
     * 打卡备注
     */
    private String remark;
    /**
     * 图片
     */
    private String image;

    /**
     * 用户打卡地点
     */
    private String punchAddress;

    /**
     * 迟到时长（分）
     */
    private String lateTime;

    /**
     * 早退时长（分）
     */
    private String leaveEarlyTime;
}