from __future__ import annotations """公共Pydantic模型:提供AppModel基类(统一配置)与SourceMetadata第三方数据来源元数据。""" from datetime import datetime,timezone from pydantic import BaseModel,Field,ConfigDict def utc_now()->datetime: """返回带时区的 UTC时间。""" return datetime.now(timezone.utc) class AppModel(BaseModel): """项目中所有 Pydantic 模型的基础类。""" model_config = ConfigDict( extra="ignore", str_strip_whitespace = True, validate_assignment = True, ) class SourceMetadata(AppModel): """第三方数据来源信息。""" provider: str status: str | None = None search_id: str | None = None retrieved_at: datetime = Field(default_factory=utc_now) currency:str | None = None is_cached:bool | None = None