Newer
Older
vmk-360-data_collector / src / vmk_data_collector / schemas / normalized.py
from typing import Any

from pydantic import BaseModel


class NormalizedPropertySchema(BaseModel):
    property_type: str | None = None
    deal_type: str | None = None
    title: str | None = None
    description: str | None = None
    price: float | None = None
    currency: str | None = None
    original_price: float | None = None
    original_currency: str | None = None
    price_per_sqm: float | None = None
    total_area: float | None = None
    living_area: float | None = None
    kitchen_area: float | None = None
    land_area: float | None = None
    rooms_count: int | None = None
    bedrooms_count: int | None = None
    bathrooms_count: int | None = None
    layout: str | None = None
    floor: int | None = None
    floors_total: int | None = None
    building_year: int | None = None
    building_type: str | None = None
    renovation_status: str | None = None
    ceiling_height: float | None = None
    material: str | None = None
    has_balcony: bool | None = None
    has_loggia: bool | None = None
    balcony_count: int | None = None
    loggia_count: int | None = None
    bathroom_type: str | None = None
    elevator_count: int | None = None
    has_freight_elevator: bool | None = None
    parking_type: str | None = None
    heating_type: str | None = None
    internet: bool | None = None
    security: bool | None = None
    windows_direction: str | None = None
    window_view: str | None = None
    address_raw: str | None = None
    city: str | None = None
    district: str | None = None
    micro_district: str | None = None
    street: str | None = None
    house_number: str | None = None
    metro_station: str | None = None
    metro_distance_min: int | None = None
    metro_distance_type: str | None = None
    latitude: float | None = None
    longitude: float | None = None
    contact_phone: str | None = None
    contact_name: str | None = None
    contact_email: str | None = None
    is_agent: bool | None = None
    agency_name: str | None = None
    publish_date: str | None = None
    url_source: str | None = None
    images: list[str] = []
    custom_fields: dict[str, Any] = {}