Initial project commit

This commit is contained in:
2026-05-09 16:40:29 +08:00
commit 02b0259a9e
267 changed files with 54891 additions and 0 deletions
+82
View File
@@ -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}