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 # расстояние до целевой квартиры в метрах
|
distance_m: int | None = None # расстояние до целевой квартиры в метрах
|
||||||
|
|
||||||
|
|
||||||
|
class CianChartPoint(BaseModel):
|
||||||
|
"""Одна точка 7-месячного chart Cian Valuation Calculator."""
|
||||||
|
|
||||||
|
date: str
|
||||||
|
price: float
|
||||||
|
|
||||||
|
|
||||||
class CianValuationSummary(BaseModel):
|
class CianValuationSummary(BaseModel):
|
||||||
"""Cian Valuation Calculator данные для UI.
|
"""Cian Valuation Calculator данные для UI.
|
||||||
|
|
||||||
|
|
@ -55,7 +62,7 @@ class CianValuationSummary(BaseModel):
|
||||||
|
|
||||||
sale_price_rub: int | None = None
|
sale_price_rub: int | None = None
|
||||||
rent_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_pct: float | None = None
|
||||||
chart_change_direction: Literal["increase", "decrease", "neutral"] | None = None
|
chart_change_direction: Literal["increase", "decrease", "neutral"] | None = None
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -874,7 +874,14 @@ async def estimate_quality(
|
||||||
CianValuationSummary(
|
CianValuationSummary(
|
||||||
sale_price_rub=int(cian_val.sale_price_rub) if cian_val.sale_price_rub else None,
|
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,
|
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_pct=cian_val.chart_change_pct,
|
||||||
chart_change_direction=(
|
chart_change_direction=(
|
||||||
cian_val.chart_change_direction
|
cian_val.chart_change_direction
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue