feat: AI Worker 平台 MVP v1.0.0 - 多租户/项目管理/AI Worker/任务编排/HITL审核/成本治理
This commit is contained in:
@@ -0,0 +1,44 @@
|
|||||||
|
"""Common shared schemas."""
|
||||||
|
from typing import Optional, Any, List, Generic, TypeVar
|
||||||
|
from pydantic import BaseModel
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
T = TypeVar("T")
|
||||||
|
|
||||||
|
|
||||||
|
class PaginatedResponse(BaseModel, Generic[T]):
|
||||||
|
"""Generic paginated response wrapper."""
|
||||||
|
items: List[T]
|
||||||
|
total: int
|
||||||
|
page: int = 1
|
||||||
|
page_size: int = 20
|
||||||
|
|
||||||
|
|
||||||
|
class SuccessResponse(BaseModel):
|
||||||
|
"""Simple success response."""
|
||||||
|
success: bool = True
|
||||||
|
message: str = ""
|
||||||
|
data: Optional[Any] = None
|
||||||
|
|
||||||
|
|
||||||
|
class TokenResponse(BaseModel):
|
||||||
|
"""JWT token response."""
|
||||||
|
access_token: str
|
||||||
|
token_type: str = "bearer"
|
||||||
|
user: "UserBrief"
|
||||||
|
|
||||||
|
|
||||||
|
class UserBrief(BaseModel):
|
||||||
|
"""Brief user info embedded in responses."""
|
||||||
|
id: int
|
||||||
|
username: str
|
||||||
|
email: str
|
||||||
|
role: str
|
||||||
|
user_type: str
|
||||||
|
tenant_id: int
|
||||||
|
|
||||||
|
model_config = {"from_attributes": True}
|
||||||
|
|
||||||
|
|
||||||
|
# Update forward refs
|
||||||
|
TokenResponse.model_rebuild()
|
||||||
Reference in New Issue
Block a user