hku-class/backend/app/schemas/class_.py
2026-04-13 16:28:20 +08:00

44 lines
964 B
Python

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]