| 1234567891011121314151617181920212223242526272829303132333435363738 |
- from pydantic import BaseModel, Field, field_validator
- from typing import List, Optional, Any
- class ChannelScore(BaseModel):
- """
- 对应 API 中的 channel_score
- 使用 extra='allow' 以应对未来微信增加新字段
- """
- total_score: int = 0
- finder_score: int = 0
- query_score: int = 0
- mpdoc_score: int = 0
- class Config:
- extra = 'allow'
- class TrendItem(BaseModel):
- """单日数据"""
- ymd: str
- channel_score: ChannelScore
- @field_validator('ymd')
- def validate_date(cls, v):
- if len(v) != 8: raise ValueError("Date format error")
- return v
- class ApiResponse(BaseModel):
- """API 响应外层"""
- code: int
- msg: Optional[str] = None
- data: Optional[dict] = None
- @property
- def is_success(self):
- return self.code == 0 and self.data is not None
|