from datetime import datetime from pydantic import BaseModel class ContestCreate(BaseModel): title: str description: str | None = None start_time: datetime end_time: datetime is_active: bool = False show_leaderboard_during_contest: bool = False class ContestUpdate(BaseModel): title: str | None = None description: str | None = None start_time: datetime | None = None end_time: datetime | None = None is_active: bool | None = None show_leaderboard_during_contest: bool | None = None class ContestResponse(BaseModel): id: int title: str description: str | None start_time: datetime end_time: datetime is_active: bool show_leaderboard_during_contest: bool created_by: int | None created_at: datetime is_running: bool has_ended: bool problems_count: int = 0 participants_count: int = 0 is_participating: bool = False class Config: from_attributes = True class ContestListResponse(BaseModel): id: int title: str start_time: datetime end_time: datetime is_active: bool show_leaderboard_during_contest: bool is_running: bool has_ended: bool problems_count: int = 0 participants_count: int = 0 class Config: from_attributes = True