Initial project commit
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from app.schemas.user import UserInfo
|
||||
|
||||
|
||||
class EventCreate(BaseModel):
|
||||
title: str
|
||||
city: str
|
||||
description: str | None = None
|
||||
cover_url: str | None = None
|
||||
location_name: str | None = None
|
||||
start_time: datetime | None = None
|
||||
end_time: datetime | None = None
|
||||
max_participants: int = 0
|
||||
spot_id: int | None = None
|
||||
|
||||
|
||||
class EventUpdate(BaseModel):
|
||||
title: str | None = None
|
||||
city: str | None = None
|
||||
description: str | None = None
|
||||
cover_url: str | None = None
|
||||
location_name: str | None = None
|
||||
start_time: datetime | None = None
|
||||
end_time: datetime | None = None
|
||||
max_participants: int | None = None
|
||||
spot_id: int | None = None
|
||||
|
||||
|
||||
class EventBrief(BaseModel):
|
||||
id: int
|
||||
title: str
|
||||
city: str
|
||||
cover_url: str | None = None
|
||||
location_name: str | None = None
|
||||
start_time: datetime | None = None
|
||||
end_time: datetime | None = None
|
||||
status: str = "upcoming"
|
||||
audit_status: str = "pending"
|
||||
creator: UserInfo | None = None
|
||||
registration_count: int = 0
|
||||
max_participants: int = 0
|
||||
created_at: datetime | None = None
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class EventDetail(EventBrief):
|
||||
description: str | None = None
|
||||
spot_id: int | None = None
|
||||
reject_reason: str | None = None
|
||||
has_registered: bool = False
|
||||
photos: list["EventPhotoOut"] = []
|
||||
|
||||
|
||||
class EventPhotoOut(BaseModel):
|
||||
id: int
|
||||
image_url: str
|
||||
caption: str | None = None
|
||||
uploader: UserInfo | None = None
|
||||
spot_id: int | None = None
|
||||
created_at: datetime | None = None
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class EventPhotoCreate(BaseModel):
|
||||
image_url: str
|
||||
caption: str | None = None
|
||||
spot_id: int | None = None
|
||||
|
||||
|
||||
class RegistrationOut(BaseModel):
|
||||
id: int
|
||||
event_id: int
|
||||
user: UserInfo | None = None
|
||||
status: str = "registered"
|
||||
created_at: datetime | None = None
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
Reference in New Issue
Block a user