Files
certificate-system/backend/app/schemas/learner.py
2026-08-14 11:37:09 +08:00

47 lines
1.1 KiB
Python

from datetime import datetime
from pydantic import BaseModel, Field
class LearnerCreate(BaseModel):
phone: str = Field(min_length=6, max_length=32)
current_name: str = Field(min_length=1, max_length=64)
student_no: str | None = Field(default=None, max_length=64)
remark: str | None = None
class LearnerUpdate(BaseModel):
phone: str = Field(min_length=6, max_length=32)
current_name: str = Field(min_length=1, max_length=64)
student_no: str | None = Field(default=None, max_length=64)
status: str = Field(default="active", pattern="^(active|disabled|deleted)$")
remark: str | None = None
class LearnerOut(BaseModel):
id: int
phone: str
current_name: str
student_no: str | None
status: str
remark: str | None
certificate_count: int = 0
created_at: datetime
updated_at: datetime
model_config = {"from_attributes": True}
class LearnerImportError(BaseModel):
row_no: int
message: str
class LearnerImportResult(BaseModel):
total_rows: int
created_rows: int
updated_rows: int
unchanged_rows: int
failed_rows: int
errors: list[LearnerImportError]