79 lines
1.7 KiB
Python
79 lines
1.7 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
|
|
class_id: int
|
|
class_name: Optional[str] = None
|
|
total_points: int
|
|
parent_phone: 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 HomeworkSubmission(BaseModel):
|
|
"""作业提交情况"""
|
|
assignment_id: int
|
|
title: str
|
|
subject: str
|
|
deadline: date
|
|
status: str
|
|
submit_time: Optional[datetime] = None
|
|
comments: Optional[str] = None
|
|
deduction_applied: bool
|
|
|
|
|
|
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
|
|
class_name: str
|
|
total_points: int
|
|
rank_in_class: int |