import json from datetime import datetime from pydantic import BaseModel, field_validator class ClassCreate(BaseModel): name: str cohort_year: int description: str | None = None class ClassUpdate(BaseModel): name: str | None = None cohort_year: int | None = None description: str | None = None class ClassOut(BaseModel): id: int name: str cohort_year: int description: str | None invite_code: str | None = None member_count: int = 0 enabled_modules: list[str] | None = None created_at: datetime model_config = {"from_attributes": True} @field_validator("enabled_modules", mode="before") @classmethod def parse_enabled_modules(cls, v): if isinstance(v, str): try: return json.loads(v) except (json.JSONDecodeError, TypeError): return None return v class ModuleUpdate(BaseModel): enabled_modules: list[str]