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