fix(tradein/cian): rename chart key month_date→date + null-filter + typed ChartPoint
This commit is contained in:
parent
e73f9479ef
commit
8cdc7840ef
2 changed files with 16 additions and 2 deletions
|
|
@ -46,6 +46,13 @@ class AnalogLot(BaseModel):
|
|||
distance_m: int | None = None # расстояние до целевой квартиры в метрах
|
||||
|
||||
|
||||
class CianChartPoint(BaseModel):
|
||||
"""Одна точка 7-месячного chart Cian Valuation Calculator."""
|
||||
|
||||
date: str
|
||||
price: float
|
||||
|
||||
|
||||
class CianValuationSummary(BaseModel):
|
||||
"""Cian Valuation Calculator данные для UI.
|
||||
|
||||
|
|
@ -55,7 +62,7 @@ class CianValuationSummary(BaseModel):
|
|||
|
||||
sale_price_rub: int | None = None
|
||||
rent_price_rub: int | None = None
|
||||
chart: list[dict[str, Any]] = Field(default_factory=list)
|
||||
chart: list[CianChartPoint] = Field(default_factory=list)
|
||||
chart_change_pct: float | None = None
|
||||
chart_change_direction: Literal["increase", "decrease", "neutral"] | None = None
|
||||
|
||||
|
|
|
|||
|
|
@ -874,7 +874,14 @@ async def estimate_quality(
|
|||
CianValuationSummary(
|
||||
sale_price_rub=int(cian_val.sale_price_rub) if cian_val.sale_price_rub else None,
|
||||
rent_price_rub=int(cian_val.rent_price_rub) if cian_val.rent_price_rub else None,
|
||||
chart=list(cian_val.chart or []),
|
||||
chart=[
|
||||
{
|
||||
"date": p.get("month_date") or p.get("date") or "",
|
||||
"price": p["price"],
|
||||
}
|
||||
for p in (cian_val.chart or [])
|
||||
if p.get("price") is not None
|
||||
],
|
||||
chart_change_pct=cian_val.chart_change_pct,
|
||||
chart_change_direction=(
|
||||
cian_val.chart_change_direction
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue