from pydantic import BaseModel, Field
from typing import List
from enum import Enum


class ReportMode(str, Enum):
    PLAN = "plan"
    FACT = "fact"
    NORMATIV = "normativ"


class SvodkaCARequest(BaseModel):
    modes: List[ReportMode] = Field(
        ...,
        description="Массив кодов режимов: plan, fact или normativ",
        example=["plan", "fact"],
        min_items=1
    )

    tables: List[str] = Field(
        ...,
        description="Массив названий таблиц как есть",
        example=["ТиП, %", "Топливо итого, тонн", "Топливо итого, %", "Потери итого, тонн"],
        min_items=1
    )

    class Config:
        json_schema_extra = {
            "example": {
                "modes": ["plan", "fact"],
                "tables": ["ТиП, %", "Топливо итого, тонн", "Топливо итого, %", "Потери итого, тонн"]
            }
        }
