新增课程起止日期管理
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user