package jnpf.entity.attendance;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.*;

import java.io.Serializable;
import java.util.Date;

/**
 * 打卡结果实体类
 *
 * @author yanwenfu
 * @create 2023-09-18
 */
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value ="ftb_attendance_clock_in_result")
@ToString
public class AttendanceClockInResult extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {

    /** 出勤规则id */
    @TableField(value = "F_RuleId")
    private String ruleId;
    /** 用户id */
    @TableField(value = "F_UserId")
    private String userId;
    /** 打卡id */
    @TableField(value = "F_ClockInId")
    private String clockInId;
    /** 有效时间(工时计算时间) */
    @TableField(value = "F_EffectiveTime")
    private Date effectiveTime;
    /** 打卡类型(1: 上班, 2: 下班) */
    @TableField(value = "F_ClockInType")
    private Integer clockInType;
    /** 打卡状态(-2: 无需打卡, -1: 缺卡, 1: 正常, 2: 迟到, 3: 早退) */
    @TableField(value = "F_ClockInStatus")
    private Integer clockInStatus;
    /** 打卡种类(1: 普通打卡, 2: 外勤打卡) */
    @TableField(value = "F_ClockInKind")
    private Integer clockInKind;
    /** 是否补卡(1: 是, 0: 否) */
    @TableField(value = "F_Repaired")
    private Integer repaired;
    /** 审批类型(1: 补卡, 2: 出勤变更, 3: 外勤) */
    @TableField(value = "F_ApplyType")
    private Integer applyType;
    /** 审批id */
    @TableField(value = "F_ApplyId")
    private String applyId;
    /** 是否缺勤(1: 是, 0: 否) */
    @TableField(value = "F_Absence")
    private Integer absence;
    /** 打卡记录变更人 */
    @TableField(value = "F_AbsenceLeader")
    private String absenceLeader;
    /** 上次打卡记录变更人 */
    @TableField(value = "F_LastAbsenceLeader")
    private String lastAbsenceLeader;
    /** 休息时间(分钟) */
    @TableField(value = "F_RestMinute")
    private Integer restMinute;
    /** 异常时长(秒) */
    @TableField(value = "F_AbnormalMinute")
    private Integer abnormalMinute;
    /** 审批状态(0: 通过, 1: 审批中, 2: 拒绝) */
    @TableField(exist = false)
    private Integer approvalStatus;
    @TableField(exist = false)
    private String groupId;
    @TableField(exist = false)
    /** 旧结果id 用于重新匹配打卡记录时重新关联审批记录 */
    private String oldResultId;
    @TableField(exist = false)
    private Date day;
    @TableField(exist = false)
    private Integer attendanceType;
}
