| 123456789101112131415161718192021222324252627282930 |
- 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
|