| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- """
- Pydantic schemas for Open API project endpoints.
- """
- from enum import Enum
- from datetime import datetime
- from typing import Optional, List
- from pydantic import BaseModel, Field
- class ProjectType(str, Enum):
- IMAGE = "image"
- TEXT = "text"
- class OpenProjectItem(BaseModel):
- project_id: str = Field(..., description="项目ID")
- project_name: str = Field(..., description="项目名称")
- description: str = Field(default="", description="项目描述")
- project_type: ProjectType = Field(..., description="项目类型")
- task_type: str = Field(..., description="任务类型")
- status: str = Field(..., description="项目状态")
- created_by: str = Field(default="", description="创建人")
- created_at: datetime = Field(..., description="创建时间")
- updated_at: Optional[datetime] = Field(None, description="更新时间")
- task_count: int = Field(default=0, description="总任务数")
- completed_task_count: int = Field(default=0, description="已完成任务数")
- class OpenProjectDetailItem(OpenProjectItem):
- assigned_task_count: int = Field(default=0, description="已分配任务数")
- completion_percentage: float = Field(default=0.0, description="完成率")
- class OpenProjectListData(BaseModel):
- items: List[OpenProjectItem]
- total: int
- page: int
- page_size: int
- total_pages: int
- has_next: bool
- has_prev: bool
- class OpenProjectListResponse(BaseModel):
- code: int = Field(default=0)
- message: str = Field(default="success")
- data: OpenProjectListData
- class OpenProjectDetailResponse(BaseModel):
- code: int = Field(default=0)
- message: str = Field(default="success")
- data: OpenProjectDetailItem
|