53 lines
1.1 KiB
Python
53 lines
1.1 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
|
|
|
|
|
|
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
|
|
|
|
|
|
class ContestResponse(BaseModel):
|
|
id: int
|
|
title: str
|
|
description: str | None
|
|
start_time: datetime
|
|
end_time: datetime
|
|
is_active: 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
|
|
is_running: bool
|
|
has_ended: bool
|
|
problems_count: int = 0
|
|
participants_count: int = 0
|
|
|
|
class Config:
|
|
from_attributes = True
|