CoolBotDataSys/api/models/response.py

52 lines
1.4 KiB
Python
Raw Permalink Normal View History

"""API 响应模型"""
from pydantic import BaseModel
from typing import Optional, List, Any
from datetime import datetime
class CollectionResponse(BaseModel):
"""藏品响应"""
id: int
name: str
category: Optional[str] = None
serial_number: Optional[str] = None
rarity: str = "通货"
ownership_type: str = "自持"
is_graded: bool = False
grading_company: Optional[str] = None
grading_score: Optional[str] = None
cost_price: Optional[float] = None
current_price: Optional[float] = None
status: str = "in_collection"
remark: Optional[str] = None
created_at: datetime
updated_at: datetime
class PriceHistoryResponse(BaseModel):
"""价格历史响应"""
id: int
collection_id: Optional[int] = None
source: str
price: float
price_unit: str = "元/张"
price_type: str = "挂牌价"
url: Optional[str] = None
crawled_at: datetime
class CrawlLogResponse(BaseModel):
"""爬虫日志响应"""
id: int
source: str
status: str
items_count: int = 0
error_message: Optional[str] = None
started_at: Optional[datetime] = None
finished_at: Optional[datetime] = None
class StatisticsResponse(BaseModel):
"""统计信息响应"""
total_collections: int = 0
total_price_records: int = 0
today_price_records: int = 0
last_crawl_time: Optional[datetime] = None
category_stats: dict = {}