新增课程起止日期管理

This commit is contained in:
Certificate System
2026-08-13 14:39:44 +08:00
parent 2e1a639179
commit c9667d56fb
20 changed files with 313 additions and 33 deletions

View File

@@ -1,6 +1,6 @@
from datetime import date, datetime
from pydantic import BaseModel, Field, field_validator
from pydantic import BaseModel, Field, ValidationInfo, field_validator
class CertificateCreate(BaseModel):
@@ -10,6 +10,8 @@ class CertificateCreate(BaseModel):
class_name: str | None = Field(default=None, max_length=128)
course_name: str | None = Field(default=None, max_length=128)
stage_name: str | None = Field(default=None, max_length=128)
course_start_date: date
course_end_date: date
issue_date: date
issuer_name: str = Field(min_length=1, max_length=128)
remark: str | None = None
@@ -19,6 +21,14 @@ class CertificateCreate(BaseModel):
def normalize_project_code(cls, value: str) -> str:
return value.strip().upper()
@field_validator("course_end_date")
@classmethod
def validate_course_period(cls, value: date, info: ValidationInfo) -> date:
start_date = info.data.get("course_start_date")
if start_date and value < start_date:
raise ValueError("课程结束日期不能早于课程开始日期")
return value
class CertificateOut(BaseModel):
id: int
@@ -31,6 +41,8 @@ class CertificateOut(BaseModel):
class_name: str | None
course_name: str | None
stage_name: str | None
course_start_date: date | None
course_end_date: date | None
issue_date: date
issuer_name: str
status: str