volsu-contests/backend/app/schemas/contest.py

57 lines
1.3 KiB
Python

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