package com.yida.data.common.core.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 考勤结果状态类别
 */
@Getter
@AllArgsConstructor
public enum AttendanceResult {
    /**
     * 正常状态
     */
    NORMAL(100, "正常"),

    /**
     * 异常状态
     */
    ABNORMAL(999, "异常"),

    /**
     * 上学未在打卡有效时间段
     */
    STU_START_NOT_IN(101, "上学未在有效打卡时段"),

    /**
     * 下学未在有效打卡时段
     */
    STU_END_NOT_IN(102, "下学未在有效打卡时段"),

    /**
     * 走读-迟到
     */
    STU_LATE(201, "迟到"),
    /**
     * 走读-早退
     */
    STU_LEAVE(202, "早退"),
    /**
     * 走读-迟到早退
     */
    STU_LATE_LEAVE(203, "迟到早退"),
    /**
     * 走读-旷课
     */
    STU_NOTARRIVE(204, "旷课"),

    /**
     * 走读-请假
     */
    STU_REQUEST(205, "请假"),
    /**
     * 上班未打卡|下班正常
     */
    STU_NOSTART_AND_END_NORMAL(206, "上班未打卡|下班正常"),

    /**
     * 上班未打卡|下班正常
     */
    STU_NOSTART_AND_END_LATE(207, "上班未打卡|下班早退"),
    /**
     * 上班未打卡|下班正常
     */
    STU_NOSTART_AND_END_NOTIN(208, "上班未打卡|下班未在有效打卡时间段内"),
    /**
     * 上班未在有效打卡时间段内|下班早退
     */
    STU_NOSTARTIN_AND_END_LEAVE(209, "上班未在有效打卡时间段内|下班早退"),

    /**
     * 上班迟到|下班未打卡
     */
    STU_NOSTARTIN_AND_END_NO(210, "上班迟到|下班未打卡"),
    /**
     * 住宿-晚归
     */
    STU_D_LATE(211, "晚归"),
    /**
     * 住宿-异常晚归
     */
    STU_D_EX_LATE(212, "异常晚归"),
    /**
     * 住宿-旷宿
     */
    STU_D_NOTARRIVE(213, "旷宿"),
    /**
     * 住宿-未归寝但已核查
     */
    STU_D_NOTARRIVE_VERIFY(214, "未归寝但已核查");

    private final Integer value;
    private final String name;
}
