feat(发票模型): 添加app_user_id字段并启用属性转换

refactor(估值模型): 修改historical_evidence类型并添加URL验证器

在发票模型中添加可选用户ID字段并配置ORM属性转换
在估值模型中调整历史证据字段类型为字典并添加URL字段验证逻辑
This commit is contained in:
邹方成 2025-11-24 17:19:26 +08:00
parent e803102263
commit efe2ec6416
2 changed files with 18 additions and 1 deletions

View File

@ -14,6 +14,7 @@ class InvoiceHeaderCreate(BaseModel):
class InvoiceHeaderOut(BaseModel):
id: int
app_user_id: Optional[int] = None
company_name: str
tax_number: str
register_address: str
@ -21,6 +22,8 @@ class InvoiceHeaderOut(BaseModel):
bank_name: str
bank_account: str
email: EmailStr
class Config:
from_attributes = True
class InvoiceHeaderUpdate(BaseModel):

View File

@ -104,7 +104,7 @@ class ValuationAssessmentUpdate(BaseModel):
inheritor_certificates: Optional[List[Any]] = Field(None, description="非遗传承人等级证书")
heritage_level: Optional[str] = Field(None, description="非遗等级")
patent_application_no: Optional[str] = Field(None, description="非遗资产所用专利的申请号")
historical_evidence: Optional[List[Any]] = Field(None, description="非遗资产历史证明证据及数量")
historical_evidence: Optional[Dict[str, int]] = Field(None, description="非遗资产历史证明证据及数量")
patent_certificates: Optional[List[Any]] = Field(None, description="非遗资产所用专利的证书")
pattern_images: Optional[List[Any]] = Field(None, description="非遗纹样图片")
report_url: Optional[str] = Field(None, description="评估报告URL")
@ -129,6 +129,20 @@ class ValuationAssessmentUpdate(BaseModel):
is_active: Optional[bool] = Field(None, description="是否激活")
@field_validator('report_url', 'certificate_url', mode='before')
@classmethod
def _coerce_url(cls, v):
if v is None:
return None
if isinstance(v, list) and v:
v = v[0]
if isinstance(v, str):
s = v.strip()
if s.startswith('`') and s.endswith('`'):
s = s[1:-1].strip()
return s
return v
class ValuationAssessmentOut(ValuationAssessmentBase):
"""估值评估输出模型"""