<?php

declare(strict_types=1);

namespace Kylin\ElderlyCare\Standards;

/**
 * GB/T 42195-2022 老年人能力评估标准
 * 用于计算护理等级
 */
final class CareLevelCalculator
{
    /**
     * 根据评估总分计算护理等级
     * 0: 能力完好 (0-3分)
     * 1: 轻度失能 (4-8分)
     * 2: 中度失能 (9-18分)
     * 3: 重度失能 (19分及以上)
     */
    public static function calculate(int $totalScore): int
    {
        return match (true) {
            $totalScore <= 3 => 0,
            $totalScore <= 8 => 1,
            $totalScore <= 18 => 2,
            default => 3,
        };
    }

    /**
     * 获取护理等级标签
     */
    public static function label(int $level): string
    {
        return match ($level) {
            0 => '能力完好',
            1 => '轻度失能',
            2 => '中度失能',
            3 => '重度失能',
            default => '未知',
        };
    }
}
