Files

43 lines
1.3 KiB
Python

# scheme/classes.py
# 班级模块的请求/响应模型
from datetime import date
from typing import List, Optional
from pydantic import BaseModel, Field
# -------------------- 请求体模型 -----------------------------
class ClassAdd(BaseModel):
class_id: Optional[int] = Field(None, ge=1, description="班级ID(不传则自增)")
class_name: str = Field(..., min_length=1, max_length=50, description="班级名称,如 Java2301")
start_time: date = Field(..., description="开课时间,格式 YYYY-MM-DD")
class ClassUpdate(BaseModel):
class_name: Optional[str] = Field(None, min_length=1, max_length=50, description="班级名称")
start_time: Optional[date] = Field(None, description="开课时间")
# -------------------- 响应模型 ----------------------------
class ClassResponse(BaseModel):
class_id: int
class_name: str
start_time: date
class Config:
from_attributes = True
class ClassListResponse(BaseModel):
total: int
items: List[ClassResponse]
class ClassStudentCountResponse(BaseModel):
"""班级人数统计(多维度班级统计)"""
class_id: int
class_name: str
total: int = Field(..., description="总人数")
male: int = Field(..., description="男生人数")
female: int = Field(..., description="女生人数")