Files
xsk-education-management/app/schemas.py
T
2026-06-16 01:09:51 +08:00

89 lines
2.0 KiB
Python

from __future__ import annotations
from pydantic import BaseModel, Field
class RegisterLinesPayload(BaseModel):
line: str | None = Field(default=None, description="单条原始登记文本")
lines: list[str] | None = Field(default=None, description="多条原始登记文本")
class PaymentPayload(BaseModel):
date: str
hours: float
class AccountPayload(BaseModel):
student_id: str = ""
student: str
payments: list[PaymentPayload] = Field(default_factory=list)
remaining: float = 0
account_status: str = "正常"
note: str = ""
class TeacherPayload(BaseModel):
teacher_id: str = ""
name: str
alias: str = ""
subjects: list[str] = Field(default_factory=list)
status: str = "在岗"
note: str = ""
class CorrectionItemPayload(BaseModel):
record_id: str
date: str
time: str
student: str
teacher: str
subject: str
class CorrectionSubmitPayload(BaseModel):
items: list[CorrectionItemPayload]
class DeletionItemPayload(BaseModel):
record_id: str
class DeletionSubmitPayload(BaseModel):
items: list[DeletionItemPayload]
class CourseSummaryPayload(BaseModel):
source_id: str = ""
student: str
date_iso: str = ""
date: str = ""
time_range: str = ""
raw_time: str = ""
duration: str = ""
duration_hours: float | None = None
duration_minutes: int | None = None
teacher: str = ""
subject: str = ""
group: str = ""
sender: str = ""
sender_name: str = ""
sender_id: str = ""
message_time: str = ""
message_date: str = ""
db: str = ""
local_id: str | int | None = ""
title: str = ""
body: str
recognition_source: str = ""
confidence: str = ""
teacher_trusted: bool = False
sender_teacher_trusted: bool = False
remark: str = ""
class CourseSummaryIngestPayload(BaseModel):
batch_id: str
window: dict = Field(default_factory=dict)
students: list[str] = Field(default_factory=list)
summaries: list[CourseSummaryPayload] = Field(default_factory=list)