79 lines
1.7 KiB
Python
79 lines
1.7 KiB
Python
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="管理员身份验证令牌"
|
|
) |