"""SearchResponse + SearchResultItem — /api/v1/search return shape.""" from __future__ import annotations from datetime import datetime from pydantic import BaseModel, ConfigDict class SearchResultItem(BaseModel): model_config = ConfigDict(from_attributes=True) listing_id: int source: str source_url: str | None = None address: str | None = None lat: float | None = None lng: float | None = None rooms: int | None = None total_area: float | None = None floor: int | None = None total_floors: int | None = None price_rub: int | None = None price_per_m2: int | None = None kadastr_num: str | None = None scraped_at: datetime | None = None house_id: int | None = None year_built: int | None = None house_class: str | None = None developer_name: str | None = None house_rating: float | None = None house_ratings_count: int | None = None source_count: int | None = None sources: list[str] | None = None has_avito: bool | None = None has_cian: bool | None = None has_yandex: bool | None = None house_median_ppm2: float | None = None district: str | None = None class SearchResponse(BaseModel): items: list[SearchResultItem] total: int page: int page_size: int elapsed_ms: float | None = None cache_hit: bool = False