package com.njcn.rdms.module.project.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 任务到期范围快速筛选枚举(用于跨执行任务查询 chip)。
 *
 * <p>含义:</p>
 * <ul>
 *   <li>{@link #OVERDUE} 计划完成日 &lt; 今天,且任务状态非终态</li>
 *   <li>{@link #TODAY}   计划完成日 = 今天</li>
 *   <li>{@link #THIS_WEEK} 计划完成日 在本周(周一~周日,Asia/Shanghai)</li>
 * </ul>
 *
 * <p>非终态的判定走 {@code ObjectStatusModelMapper.selectTerminalStatusCodesByObjectTypeEnabled('task')}
 * 动态查询,不在此枚举里硬编码状态字面值。</p>
 */
@Getter
@AllArgsConstructor
public enum DueRangeEnum {

    OVERDUE("overdue"),
    TODAY("today"),
    THIS_WEEK("thisWeek");

    private final String value;

    public static DueRangeEnum of(String value) {
        if (value == null) return null;
        for (DueRangeEnum e : values()) {
            if (e.value.equals(value)) return e;
        }
        return null;
    }
}
