"""Pure-Python nutrition multiplier policy."""

from dataclasses import dataclass
from decimal import Decimal

from .constants import (
    BASIC,
    NUTRITION_LEVELS,
    NUTRITION_MULTIPLIERS_V1,
    NUTRITION_POLICY_KEY,
    NUTRITION_POLICY_VERSION,
)


@dataclass(frozen=True)
class NutritionPolicyResult:
    level: str
    multiplier: Decimal
    policy_key: str
    policy_version: str


class NutritionPolicyV1:
    key = NUTRITION_POLICY_KEY
    version = NUTRITION_POLICY_VERSION
    default_level = BASIC

    @classmethod
    def resolve(cls, level: str) -> NutritionPolicyResult:
        if level not in NUTRITION_LEVELS:
            raise ValueError(f"Unsupported nutrition level: {level!r}")
        return NutritionPolicyResult(
            level=level,
            multiplier=NUTRITION_MULTIPLIERS_V1[level],
            policy_key=cls.key,
            policy_version=cls.version,
        )
