xiangqinxiaochengxu/backend/app/schemas/activity.py
2026-04-17 10:49:14 +08:00

52 lines
1.2 KiB
Python

from pydantic import BaseModel, ConfigDict
class ActivityListItem(BaseModel):
model_config = ConfigDict(extra="ignore")
id: int
title: str
category: str | None = None
cover_image: str | None = None
start_time: str
end_time: str
signup_deadline: str | None = None
location: str | None = None
status: int
capacity_male: int
capacity_female: int
registered_male: int
registered_female: int
is_registered: bool
can_register: bool
match_limit: int | None = None
match_count: int | None = None
match_remaining: int | None = None
class ActivityDetailResponse(ActivityListItem):
description: str | None = None
require_audit: int
registered_preview: list[dict]
class ActivityRegisterResponse(BaseModel):
registration_id: int
status: int
message: str
class AdminActivityUpsertRequest(BaseModel):
title: str
description: str | None = None
category: str | None = None
location: str | None = None
cover_image: str | None = None
start_time: str
end_time: str
signup_deadline: str | None = None
capacity_male: int = 0
capacity_female: int = 0
match_window_hours: int = 48
require_audit: bool = True
is_published: bool = False