Files
ClassManager/backend/schemas/student.py
2026-05-28 15:38:32 +08:00

65 lines
1.4 KiB
Python

# ===========================================
# 班级操行分管理系统 - 后端服务
#
# 开发者: Canglan
# 联系方式: admin@sea-studio.top
# 版权归属: Sea Network Technology Studio
# 许可证: MIT License
#
# 版权所有 © Sea Network Technology Studio
# ===========================================
from pydantic import BaseModel, Field
from typing import Optional, List
from datetime import date, datetime
class StudentInfo(BaseModel):
"""学生信息"""
student_id: int
student_no: str
name: str
total_points: int
parent_phone: Optional[str] = None
dormitory_number: Optional[str] = None
status: int
class ConductRecord(BaseModel):
"""操行分记录"""
record_id: int
student_id: int
student_name: Optional[str] = None
points_change: int
reason: str
recorder_id: int
recorder_name: str
related_type: str
is_revoked: bool
created_at: datetime
class ConductHistoryResponse(BaseModel):
"""操行分历史响应"""
student_id: int
student_name: str
total_points: int
records: List[ConductRecord]
class AttendanceRecord(BaseModel):
"""考勤记录"""
attendance_id: int
date: date
status: str
reason: Optional[str] = None
deduction_applied: bool
class StudentRanking(BaseModel):
"""学生排行"""
student_id: int
student_no: str
name: str
total_points: int
rank_in_class: int