45 lines
787 B
Python
45 lines
787 B
Python
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, ConfigDict
|
|
|
|
from database.models import TicketStatus
|
|
|
|
|
|
class TournamentInfo(BaseModel):
|
|
id: int
|
|
title: str
|
|
event_date: datetime
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
class SeatInfo(BaseModel):
|
|
id: int
|
|
sector: str
|
|
row: int
|
|
number: int
|
|
price: int
|
|
tournament: TournamentInfo
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
class TicketResponse(BaseModel):
|
|
id: int
|
|
status: TicketStatus
|
|
pdf_url: str | None
|
|
created_at: datetime
|
|
seat: SeatInfo
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
class TicketScanRequest(BaseModel):
|
|
token: str
|
|
|
|
|
|
class TicketScanResponse(BaseModel):
|
|
success: bool
|
|
message: str
|
|
ticket_id: int | None
|