15 phase 3 tournament add
This commit is contained in:
36
backend/schemas/tournament.py
Normal file
36
backend/schemas/tournament.py
Normal file
@@ -0,0 +1,36 @@
|
||||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, field_validator
|
||||
|
||||
|
||||
class SectorConfig(BaseModel):
|
||||
sector_name: str
|
||||
rows: int
|
||||
seats_per_row: int
|
||||
price: int
|
||||
|
||||
@field_validator("rows", "seats_per_row", "price")
|
||||
@classmethod
|
||||
def must_be_positive(cls, v: int) -> int:
|
||||
if v <= 0:
|
||||
raise ValueError("Must be a positive integer")
|
||||
return v
|
||||
|
||||
|
||||
class SeatGenerateRequest(BaseModel):
|
||||
sectors: list[SectorConfig]
|
||||
|
||||
|
||||
class TournamentCreate(BaseModel):
|
||||
title: str
|
||||
description: str | None = None
|
||||
event_date: datetime
|
||||
|
||||
|
||||
class TournamentResponse(BaseModel):
|
||||
id: int
|
||||
title: str
|
||||
description: str | None
|
||||
event_date: datetime
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
Reference in New Issue
Block a user