Files
aiData/Model/YltAnalyticsModel.py
HuangHai 5c0a1a67ac 'commit'
2026-01-18 16:02:40 +08:00

56 lines
1.1 KiB
Python

from typing import List, Optional
from pydantic import BaseModel
class StationBase(BaseModel):
station_hash: str
operator: str
station_name: str
address: Optional[str]
coord_x: Optional[float]
coord_y: Optional[float]
current_price: Optional[float]
class CompetitorStation(BaseModel):
station_hash: str
operator: str
station_name: str
distance_km: float
current_price: Optional[float]
class GeoCompetitionResponse(BaseModel):
base_station: StationBase
competitors: List[CompetitorStation]
ylt_price: Optional[float]
min_competitor_price: Optional[float]
max_competitor_price: Optional[float]
cheaper_count: int
same_count: int
more_expensive_count: int
class GeoCompetitionSummary(BaseModel):
summary: str
class PriceSeries(BaseModel):
operator: str
series: List[Optional[float]]
class PriceComparisonResponse(BaseModel):
hours: List[int]
ylt: PriceSeries
competitors: List[PriceSeries]
min_diff: Optional[float]
max_diff: Optional[float]
avg_diff: Optional[float]
class PriceComparisonSummary(BaseModel):
summary: str