72 lines
1.5 KiB
Python
72 lines
1.5 KiB
Python
from ninja import Schema
|
|
from datetime import datetime
|
|
from typing import Optional, List
|
|
|
|
|
|
class LinkCategorySchema(Schema):
|
|
id: int
|
|
name: str
|
|
code: str
|
|
order: int
|
|
is_active: bool
|
|
created_at: Optional[datetime] = None
|
|
|
|
|
|
class FriendLinkSchema(Schema):
|
|
id: int
|
|
category_id: int
|
|
name: str
|
|
url: str
|
|
order: int
|
|
is_active: bool
|
|
created_at: Optional[datetime] = None
|
|
|
|
|
|
class LinkCategoryCreateSchema(Schema):
|
|
name: str
|
|
code: str
|
|
order: int = 0
|
|
is_active: bool = True
|
|
|
|
|
|
class FriendLinkCreateSchema(Schema):
|
|
category_id: int
|
|
name: str
|
|
url: str
|
|
order: int = 0
|
|
is_active: bool = True
|
|
|
|
|
|
# ================= 响应模式 (Output) =================
|
|
class PictureLinkSchema(Schema):
|
|
id: int
|
|
name: str
|
|
picture: str # 这里返回的是图片路径字符串
|
|
url: str
|
|
order: int
|
|
is_active: bool
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
# 如果你的 Model 字段和 Schema 字段名一致,通常不需要 orm_mode
|
|
# 但为了保险,或者如果你直接返回 Model 实例,建议开启
|
|
from_attributes = True
|
|
|
|
|
|
# ================= 请求模式 (Input) =================
|
|
class PictureLinkCreateSchema(Schema):
|
|
name: str
|
|
picture: str
|
|
url: str
|
|
order: int = 0
|
|
is_active: bool = True
|
|
|
|
|
|
class PictureLinkUpdateSchema(Schema):
|
|
name: Optional[str] = None
|
|
picture: Optional[str] = None
|
|
url: Optional[str] = None
|
|
order: Optional[int] = None
|
|
is_active: Optional[bool] = None
|