from pydantic import BaseModel, condecimal, conint, Field from typing import Optional from datetime import date, datetime from decimal import Decimal from typing import Literal class GameListRequest(BaseModel): token: str class GameCreate(BaseModel): game_name: str game_type: int description: str min_players: int max_players: int duration: str price: float difficulty_level: int is_available: int quantity: int long_description: str class GameCreateRequest(GameCreate): token: str class GameListResponse(BaseModel): game_id: int game_name: str game_type: int description: str min_players: int max_players: int duration: str price: float difficulty_level: int is_available: int quantity: int class GamePhotoRequest(BaseModel): game_id: int photo_url: str token: str class TagCreateRequest(BaseModel): tag_name: str = Field(..., min_length=1, max_length=50, example="亲子游戏") token: str # 管理员权限验证 class GameTagLinkRequest(BaseModel): tag_id: int = Field(..., gt=0, example=1) game_ids: list[int] = Field(..., min_items=1, example=[1,2,3]) token: str # 管理员权限验证 class GameTagUnLinkRequest(BaseModel): tag_id: int = Field(..., gt=0, example=1) game_id: int token: str # 管理员权限验证 class GetGameTagsRequest(BaseModel): tag_id: int = Field(..., gt=0, example=1) token: str class DeleteTagRequest(BaseModel): tag_id: int = Field( ..., gt=0, example=1, description="要删除的标签ID" ) token: str = Field( ..., example="your_jwt_token_here", description="管理员身份验证令牌" )