<?php

declare(strict_types=1);

namespace Kylin\Agriculture\Enums;

/**
 * 预警等级枚举
 *
 * 依据《农作物病虫害防治条例》和气象灾害预警标准，
 * 采用四级预警体系：蓝色（一般）、黄色（较重）、橙色（严重）、红色（特别严重）。
 */
enum WarningLevel: string
{
    /** 蓝色预警 - 一般情况 */
    case BLUE = 'blue';

    /** 黄色预警 - 较重 */
    case YELLOW = 'yellow';

    /** 橙色预警 - 严重 */
    case ORANGE = 'orange';

    /** 红色报警 - 特别严重 */
    case RED = 'red';

    public function label(): string
    {
        return match ($this) {
            self::BLUE => '蓝色预警',
            self::YELLOW => '黄色预警',
            self::ORANGE => '橙色预警',
            self::RED => '红色报警',
        };
    }

    /**
     * 获取预警等级对应的严重程度分值
     */
    public function severity(): int
    {
        return match ($this) {
            self::BLUE => 1,
            self::YELLOW => 2,
            self::ORANGE => 3,
            self::RED => 4,
        };
    }

    /**
     * 是否达到严重级别（橙色及以上）
     */
    public function isSevere(): bool
    {
        return $this->severity() >= 3;
    }
}
