Files
ticket-system/backend/schemas/tournament.py
2026-03-06 20:03:16 +00:00

46 lines
895 B
Python

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)
class SeatResponse(BaseModel):
id: int
sector: str
row: int
number: int
price: int
is_available: bool