first commit
This commit is contained in:
commit
34ea15a54d
246 changed files with 18660 additions and 0 deletions
62
backend/app/schemas/catalog.py
Normal file
62
backend/app/schemas/catalog.py
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from app.models.enums import EventStatus, EventType, TicketTypeStatus
|
||||
|
||||
|
||||
class VenuePublic(BaseModel):
|
||||
id: int
|
||||
slug: str
|
||||
name: str
|
||||
area: str
|
||||
city: str
|
||||
address: str
|
||||
map_url: str | None = None
|
||||
description: str | None = None
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class EventMediaPublic(BaseModel):
|
||||
id: int
|
||||
image_url: str
|
||||
alt_text: str | None
|
||||
sort_order: int
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class TicketTypePublic(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
description: str | None
|
||||
price_paise: int = Field(ge=0)
|
||||
status: TicketTypeStatus
|
||||
sort_order: int
|
||||
remaining_quantity: int = Field(ge=0)
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class EventSummary(BaseModel):
|
||||
id: int
|
||||
slug: str
|
||||
title: str
|
||||
category: EventType
|
||||
status: EventStatus
|
||||
starts_at: datetime
|
||||
ends_at: datetime | None
|
||||
is_featured: bool
|
||||
cover_image_url: str | None
|
||||
cover_image_alt: str | None
|
||||
venue: VenuePublic
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class EventDetail(EventSummary):
|
||||
description: str | None
|
||||
meta_description: str | None
|
||||
media: list[EventMediaPublic]
|
||||
ticket_types: list[TicketTypePublic]
|
||||
Loading…
Add table
Add a link
Reference in a new issue