package com.ruoyi.zhushi.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 打卡记录表
 * 对应表: dk_check_in_record
 */
@Data
@TableName("dk_check_in_record")
public class DkCheckInRecord  extends BaseEntity {
    /** 主键ID */
    @TableId(value = "id", type = IdType.AUTO)
    private String id;

    /** 用户id */
    @TableField(value = "`sys_user_id`")
    private Long sysUserId;

    /** 用户名称 */
    @TableField(value = "`sys_user_name`")
    private String sysUserName;

    /** 用户昵称 */
    @TableField(value = "`nick_name`")
    private String nickName;

    /** 考勤组id */
    @TableField(value = "`attendance_group_id`")
    private long attendanceGroupId;

    /** 考勤组名称 */
    @TableField(value = "`attendance_group_name`")
    private String attendanceGroupName;

    /** 月 */
    @TableField(value = "`month`")
    private int month;

    /** 周 */
    @TableField(value = "`week`")
    private String week;

    /** 日 */
    @TableField(value = "`day`")
    private int day;

    /** 打卡时间 */
    @TableField(value = "`check_in_time`")
    private LocalDateTime checkInTime;

    /** 经度 */
    @TableField(value = "`latitude`")
    private String latitude;

    /** 纬度 */
    @TableField(value = "`longitude`")
    private String longitude;

    /** 打卡分类 */
    @TableField(value = "`check_in_type`")
    private String checkInType;

    /** 打卡状态 0未打卡 1上班已打卡 2下班已打卡 3 迟到打卡 4 早退打卡 5 更新打卡
     * 这个状态会被后面的操作覆盖  比如上班迟到 是 3 但是下班正常 就变成2了 */
    @TableField(value = "`check_in_status`")
    private String checkInStatus;

    /** 上班打卡状态 0未打卡 1正常打卡 3迟到 */
    @TableField(value = "`clock_in_status`")
    private String clockInStatus;

    /** 下班打卡状态 0未打卡 2正常打卡 4早退*/
    @TableField(value = "`clock_out_status`")
    private String clockOutStatus;

    /** 上班打卡 */
    @TableField(value = "`clock_in`")
    private LocalDateTime clockIn;

    /** 下班打卡 */
    @TableField(value = "`clock_out`")
    private LocalDateTime clockOut;

    /** 描述 */
    @TableField(value = "`description`")
    private String description;
}
