| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- """
- Statistics schemas for request/response validation.
- Defines Pydantic models for project and user statistics.
- """
- from pydantic import BaseModel, Field
- from typing import List, Optional
- from datetime import datetime
- class UserTaskStats(BaseModel):
- """用户任务统计"""
- user_id: str = Field(..., description="用户ID")
- username: str = Field(..., description="用户名")
- assigned_tasks: int = Field(default=0, description="已分配任务数")
- completed_tasks: int = Field(default=0, description="已完成任务数")
- in_progress_tasks: int = Field(default=0, description="进行中任务数")
- pending_tasks: int = Field(default=0, description="待处理任务数")
- annotation_count: int = Field(default=0, description="标注数据条数")
- completion_rate: float = Field(default=0.0, description="完成率 (%)")
- class ProjectStatisticsResponse(BaseModel):
- """项目统计响应"""
- project_id: str = Field(..., description="项目ID")
- project_name: str = Field(..., description="项目名称")
-
- # 任务统计
- total_tasks: int = Field(default=0, description="总任务数")
- completed_tasks: int = Field(default=0, description="已完成任务数")
- in_progress_tasks: int = Field(default=0, description="进行中任务数")
- pending_tasks: int = Field(default=0, description="待处理任务数")
-
- # 数据统计
- total_items: int = Field(default=0, description="总数据条数")
- annotated_items: int = Field(default=0, description="已标注数据条数")
-
- # 进度
- task_completion_rate: float = Field(default=0.0, description="任务完成率 (%)")
- data_completion_rate: float = Field(default=0.0, description="数据标注完成率 (%)")
-
- # 人员统计
- user_stats: List[UserTaskStats] = Field(default_factory=list, description="人员统计列表")
- class OverviewStatisticsResponse(BaseModel):
- """平台总览统计响应"""
- # 项目统计
- total_projects: int = Field(default=0, description="总项目数")
-
- # 任务统计
- total_tasks: int = Field(default=0, description="总任务数")
- completed_tasks: int = Field(default=0, description="已完成任务数")
- in_progress_tasks: int = Field(default=0, description="进行中任务数")
- pending_tasks: int = Field(default=0, description="待处理任务数")
-
- # 用户统计
- total_users: int = Field(default=0, description="总用户数")
- admin_count: int = Field(default=0, description="管理员数")
- annotator_count: int = Field(default=0, description="标注人员数")
-
- # 标注统计
- total_annotations: int = Field(default=0, description="总标注数")
-
- # 进度
- overall_completion_rate: float = Field(default=0.0, description="整体完成率 (%)")
|