修改schema

This commit is contained in:
strepsiades
2026-03-24 10:27:14 +08:00
parent 65bf2346a3
commit 8ee0131d47
12 changed files with 350 additions and 15 deletions
@@ -2,7 +2,7 @@ from pydantic import Field, BaseModel,field_validator,model_validator
from fastapi import HTTPException
from typing import List, Optional, Literal
from ..common.validators import DateStr
from ..common.base import BaseResponseWithID
from ..common.base import BaseResponseWithID, trim_plan_nodes_by_boundary_dates
class PlanNode(BaseModel):
date: DateStr = Field(..., description="计划节点时间", examples=["2024-01-01"])
@@ -39,6 +39,15 @@ class ContractSettlementResponse(BaseResponseWithID):
None, description="统计节点截止日期", examples=["2024-05-31"]
)
@model_validator(mode='after')
def clean_response_plan_nodes(self):
self.plan_node = trim_plan_nodes_by_boundary_dates(
self.plan_node,
start_date=self.plan_start_date,
end_date=self.plan_complete_date,
)
return self
class ContractSettlementCreate(BaseModel):
"""
合同结算创建模型
@@ -90,7 +99,7 @@ class ContractSettlementPlanUpdate(BaseModel):
cleaned_nodes and
cleaned_nodes[0].date == self.plan_start_date):
cleaned_nodes.pop(0)
# 删除结尾的边界节点
if (self.plan_complete_date and
cleaned_nodes and