from pydantic import BaseModel, ConfigDict

from .act6_fun_data import Act6FunData
from .act_4fun_data import Act4funData
from .act_5fun_data import Act5FunData
from .april_fool_const import AprilFoolConst
from .april_fool_score_data import AprilFoolScoreData
from .april_fool_stage_data import AprilFoolStageData


class AprilFoolTable(BaseModel):
    model_config: ConfigDict = ConfigDict(extra="forbid")  # pyright: ignore[reportIncompatibleVariableOverride]

    stages: dict[str, AprilFoolStageData]
    scoreDict: dict[str, list[AprilFoolScoreData]]
    constant: AprilFoolConst
    act4FunData: Act4funData
    act5FunData: Act5FunData
    act6FunData: Act6FunData
