package jnpf.enums.attendance;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

/**
 * 考勤时段类型枚举
 * 
 * @author Generated
 * @create 2026-04-16
 */
@Getter
@AllArgsConstructor
public enum PeriodTypeEnum {

    /**
     * 上班卡
     */
    MORNING(1, "上班卡"),

    /**
     * 下班卡
     */
    AFTERNOON(2, "下班卡");

    /**
     * 时段值
     */
    private final Integer code;

    /**
     * 时段名称
     */
    private final String name;

    /**
     * 根据code获取枚举
     *
     * @param code 时段值
     * @return 时段类型枚举
     */
    public static PeriodTypeEnum getByCode(Integer code) {
        if (code == null) {
            return null;
        }
        return Arrays.stream(values())
                .filter(e -> e.getCode().equals(code))
                .findFirst()
                .orElse(null);
    }

    /**
     * 判断是否为有效的时段值
     *
     * @param code 时段值
     * @return true-有效，false-无效
     */
    public static boolean isValid(Integer code) {
        return getByCode(code) != null;
    }
}
