feat: 初始化考培练系统项目
- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
This commit is contained in:
67
backend/app/schemas/task.py
Normal file
67
backend/app/schemas/task.py
Normal file
@@ -0,0 +1,67 @@
|
||||
"""
|
||||
任务相关Schema
|
||||
"""
|
||||
from datetime import datetime
|
||||
from typing import Optional, List
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class TaskBase(BaseModel):
|
||||
"""任务基础Schema"""
|
||||
title: str = Field(..., description="任务标题")
|
||||
description: Optional[str] = Field(None, description="任务描述")
|
||||
priority: str = Field("medium", description="优先级(low/medium/high)")
|
||||
deadline: Optional[datetime] = Field(None, description="截止时间")
|
||||
requirements: Optional[dict] = Field(None, description="任务要求配置")
|
||||
course_ids: List[int] = Field(default_factory=list, description="关联课程ID列表")
|
||||
user_ids: List[int] = Field(default_factory=list, description="分配用户ID列表")
|
||||
|
||||
|
||||
class TaskCreate(TaskBase):
|
||||
"""创建任务"""
|
||||
pass
|
||||
|
||||
|
||||
class TaskUpdate(BaseModel):
|
||||
"""更新任务"""
|
||||
title: Optional[str] = None
|
||||
description: Optional[str] = None
|
||||
priority: Optional[str] = None
|
||||
status: Optional[str] = None
|
||||
deadline: Optional[datetime] = None
|
||||
requirements: Optional[dict] = None
|
||||
progress: Optional[int] = None
|
||||
|
||||
|
||||
class TaskResponse(BaseModel):
|
||||
"""任务响应"""
|
||||
id: int
|
||||
title: str
|
||||
description: Optional[str]
|
||||
priority: str
|
||||
status: str
|
||||
creator_id: int
|
||||
deadline: Optional[datetime]
|
||||
requirements: Optional[dict]
|
||||
progress: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
# 扩展字段
|
||||
courses: List[str] = Field(default_factory=list, description="课程名称列表")
|
||||
assigned_count: int = Field(0, description="分配人数")
|
||||
completed_count: int = Field(0, description="完成人数")
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class TaskStatsResponse(BaseModel):
|
||||
"""任务统计响应"""
|
||||
total: int = Field(0, description="总任务数")
|
||||
ongoing: int = Field(0, description="进行中")
|
||||
completed: int = Field(0, description="已完成")
|
||||
expired: int = Field(0, description="已过期")
|
||||
avg_completion_rate: float = Field(0.0, description="平均完成率")
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user