/**
 * This file was auto-generated by openapi-typescript.
 * Do not make direct changes to the file.
 */

export interface paths {
  "/api/v1/concepts": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Create Concept
     * @description Generate 3 building variants for the given parcel polygon.
     *
     *     Stage 1a: returns stub with 3 empty variants.
     *     Stage 1b: real greedy placement.
     *     Stage 1c: TEAP + financial model attached.
     */
    post: operations["create_concept_api_v1_concepts_post"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/parcels/search": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Search Parcels
     * @description Search parcels by filters + scoring.
     *
     *     TODO Stage 2b: PostGIS query + scorer service.
     */
    post: operations["search_parcels_api_v1_parcels_search_post"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/parcels/{parcel_id}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Get Parcel
     * @description TODO Stage 2b: fetch parcel by id from DB.
     */
    get: operations["get_parcel_api_v1_parcels__parcel_id__get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/sverdl/market-pulse": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Sverdl Market Pulse
     * @description Monthly series Jan 2025 → present: total square (тыс м²), sold%, avg price.
     */
    get: operations["sverdl_market_pulse_api_v1_analytics_sverdl_market_pulse_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/sverdl/quartirography": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Sverdl Quartirography
     * @description Что строится (portfolio) vs что покупают (deals) по сегментам.
     */
    get: operations["sverdl_quartirography_api_v1_analytics_sverdl_quartirography_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/sverdl/pipeline": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Sverdl Pipeline
     * @description По году ввода: total / sold% / unsold% / unopened%.
     */
    get: operations["sverdl_pipeline_api_v1_analytics_sverdl_pipeline_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/sverdl/districts": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Sverdl Districts
     * @description ЕКБ-районы: ЖК-count, flat-count, area, цены.
     */
    get: operations["sverdl_districts_api_v1_analytics_sverdl_districts_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/sverdl/yandex-listings": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Sverdl Yandex Listings
     * @description Снимок активных новостроек Яндекс.Недвижимости.
     */
    get: operations["sverdl_yandex_listings_api_v1_analytics_sverdl_yandex_listings_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/developers/top": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Developers Top
     * @description Топ-девелоперы Свердл по объёму с Δ sold% за всю доступную историю.
     */
    get: operations["developers_top_api_v1_analytics_developers_top_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/developers/history": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Developers History
     * @description Comma-separated developer_ids → time series sold_perc.
     */
    get: operations["developers_history_api_v1_analytics_developers_history_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/developers/{developer_id}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /** Developer Detail */
    get: operations["developer_detail_api_v1_analytics_developers__developer_id__get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/developers/{developer_id}/portfolio": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /** Developer Portfolio */
    get: operations["developer_portfolio_api_v1_analytics_developers__developer_id__portfolio_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/object/{obj_id}/sale_graph": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Object Sale Graph
     * @description Time-series продаж per-ЖК. type=apartments|parking, без фильтра — обе серии.
     */
    get: operations["object_sale_graph_api_v1_analytics_object__obj_id__sale_graph_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/object/{obj_id}/sales_agg": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Object Sales Agg
     * @description 3 строки: apartments + nonliv + parking (total / realised / sold%).
     */
    get: operations["object_sales_agg_api_v1_analytics_object__obj_id__sales_agg_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/object/{obj_id}/infrastructure": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Object Infrastructure
     * @description POI вокруг ЖК. Фильтр по category (Спорт/Образование/...) и radius.
     */
    get: operations["object_infrastructure_api_v1_analytics_object__obj_id__infrastructure_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/object/{obj_id}/photos": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Object Photos
     * @description Фото-метаданные с photo_url, отсортированные по period_dt DESC.
     */
    get: operations["object_photos_api_v1_analytics_object__obj_id__photos_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/object/{obj_id}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Object Detail
     * @description Базовая инфа объекта из domrf_kn_objects (имя, адрес, координаты, девелопер).
     */
    get: operations["object_detail_api_v1_analytics_object__obj_id__get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/prinzip/insights": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Prinzip Insights
     * @description Static recommendations + benchmarks (from PRINZIP_Strategy_Apr27).
     */
    get: operations["prinzip_insights_api_v1_analytics_prinzip_insights_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/prinzip/districts": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /** Prinzip Districts */
    get: operations["prinzip_districts_api_v1_analytics_prinzip_districts_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/prinzip/objects": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Prinzip Objects
     * @description Список 28 ЖК PRINZIP с агрегатами sales_agg + sparkline-данными для UI таблицы.
     */
    get: operations["prinzip_objects_api_v1_analytics_prinzip_objects_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/analytics/recommend/mix": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Recommend Mix
     * @description Rule-based квартирография для участка в указанном районе ЕКБ.
     *
     *     На вход — district_name (8 районов ЕКБ), опционально area_total_m2 и
     *     target_class. На выход — распределение по 5 бакетам комнатности с
     *     ожидаемыми ценами/площадями/выручкой и список comparable ЖК.
     */
    post: operations["recommend_mix_api_v1_analytics_recommend_mix_post"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/kn": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /** Trigger Kn Sweep */
    post: operations["trigger_kn_sweep_api_v1_admin_scrape_kn_post"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/queue": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Queue Status
     * @description Snapshot of Celery state, optimised for UI poll latency.
     *
     *     - active: from kn_scrape_runs WHERE status='running' (instant, richer info
     *       than celery inspect — includes objects_count/flats_count/requests_count).
     *     - reserved + workers: celery inspect with short timeout (500 ms), called in
     *       a thread so a missing worker can't block the request.
     *     - queue_depth: Redis LLEN on default queue (single round-trip).
     *     - scheduled: omitted — we don't use ETA tasks.
     *
     *     Worst-case latency ≈ 600 ms even if no worker is reachable, vs ~8 s with
     *     the previous 4×2 s blocking inspect calls.
     */
    get: operations["queue_status_api_v1_admin_scrape_queue_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/release-lock": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Release Lock
     * @description Принудительно удалить Redis-lock для (region, devs). Использовать когда
     *     зомби-worker оставил lock и новые задачи скипаются с reason='lock_held'.
     */
    post: operations["release_lock_api_v1_admin_scrape_release_lock_post"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/revoke": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Revoke Task
     * @description Cancel a queued or running task by id.
     */
    post: operations["revoke_task_api_v1_admin_scrape_revoke_post"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/failures": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Failures
     * @description Per-request failure log for manual browser verification.
     */
    get: operations["list_failures_api_v1_admin_scrape_failures_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/logs": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Logs
     * @description Per-run progress events. Use since_id to poll incrementally:
     *     pass the highest log_id seen → returns only newer rows.
     */
    get: operations["list_logs_api_v1_admin_scrape_logs_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/objective": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Trigger Objective Etl
     * @description Запустить ETL Антоновского SQLite → наша PG.
     *
     *     SQLite-файл должен быть доступен внутри Celery-worker контейнера:
     *       - на проде: смонтирован bind-mount-ом из /opt/gendesign/site-finder/
     *       - локально: путь передать через payload.sqlite_path
     */
    post: operations["trigger_objective_etl_api_v1_admin_scrape_objective_post"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/objective/runs": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /** List Objective Runs */
    get: operations["list_objective_runs_api_v1_admin_scrape_objective_runs_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/objective/sync-our": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Trigger Objective Sync Our
     * @description Запустить НАШ sync_all_groups (тратит limits Объектива).
     *
     *     В отличие от ETL (POST /objective) — это вызовы api.objctv.ru напрямую,
     *     с парсингом payload через app.workers.tasks.scrape_objective.
     *     Полезно когда нужно расширить покрытие за пределы Антоновского ЕКБ
     *     (Свердл.обл целиком + Челябинск + Тюмень + Пермь).
     */
    post: operations["trigger_objective_sync_our_api_v1_admin_scrape_objective_sync_our_post"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/objective/config": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Get Objective Config
     * @description Текущая динамическая конфигурация Objective sync (single row).
     */
    get: operations["get_objective_config_api_v1_admin_scrape_objective_config_get"];
    /**
     * Update Objective Config
     * @description PATCH-style update. После изменения cron_schedule нужен restart beat,
     *     остальные поля применяются на следующем sync-вызове автоматически.
     */
    put: operations["update_objective_config_api_v1_admin_scrape_objective_config_put"];
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/objective/coverage": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Objective Coverage
     * @description Что у нас в БД сейчас + что лежит в SQLite Антона (size, last modified).
     *
     *     Помогает понять стоит ли запускать ETL: если SQLite старше последнего
     *     успешного run'а — данные не изменятся.
     */
    get: operations["objective_coverage_api_v1_admin_scrape_objective_coverage_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/geo/jobs": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Geo Jobs
     * @description Список последних geo-jobs (для UI dashboard).
     */
    get: operations["list_geo_jobs_api_v1_admin_scrape_geo_jobs_get"];
    put?: never;
    /**
     * Enqueue Geo Job
     * @description Создать bulk geo-job и поставить в очередь.
     *
     *     source_kind:
     *       - manual_list: cad_nums передан явно
     *       - rosreestr_pending: автоматически набрать из rosreestr_deals.quarter_cad_number
     *         которых ещё нет в cad_quarters_geom (для region_codes если задано)
     *       - region_bbox: TODO (для будущего spatial-bulk)
     */
    post: operations["enqueue_geo_job_api_v1_admin_scrape_geo_jobs_post"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/geo/jobs/{job_id}/cancel": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Cancel Geo Job
     * @description Пометить job как cancelled. Worker увидит при следующей итерации.
     */
    post: operations["cancel_geo_job_api_v1_admin_scrape_geo_jobs__job_id__cancel_post"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/geo/jobs/{job_id}/resume": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get?: never;
    put?: never;
    /**
     * Resume Geo Job
     * @description Re-enqueue paused/failed job. Resume idempotent через pending targets.
     */
    post: operations["resume_geo_job_api_v1_admin_scrape_geo_jobs__job_id__resume_post"];
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/all/runs": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List All Runs
     * @description Унифицированный список прогонов (kn + nspd + objective).
     *
     *     Поверх v_scrape_runs_unified. Если scraper_type не задан — все 3.
     *     Используется главной dashboard /admin/scrape/all.
     */
    get: operations["list_all_runs_api_v1_admin_scrape_all_runs_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/all/logs": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List All Logs
     * @description Унифицированный список логов (kn + nspd). Objective пока не пишет log.
     */
    get: operations["list_all_logs_api_v1_admin_scrape_all_logs_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/scrape/runs": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /** List Runs */
    get: operations["list_runs_api_v1_admin_scrape_runs_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/leads/": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /** List Leads */
    get: operations["list_leads_api_v1_admin_leads__get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/leads/stats": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Leads Stats
     * @description KPI summary за последние N месяцев.
     */
    get: operations["leads_stats_api_v1_admin_leads_stats_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/leads/funnel/monthly": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Funnel Monthly
     * @description Воронка по месяцам: leads → engaged → converted (по source).
     */
    get: operations["funnel_monthly_api_v1_admin_leads_funnel_monthly_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/leads/funnel/by-source": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Funnel By Source
     * @description Splitting по source: кто конвертит лучше за последние N месяцев.
     */
    get: operations["funnel_by_source_api_v1_admin_leads_funnel_by_source_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/leads/funnel/by-object": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * Funnel By Object
     * @description Воронка для каждого ЖК PRINZIP: leads / deals / revenue.
     */
    get: operations["funnel_by_object_api_v1_admin_leads_funnel_by_object_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/admin/leads/sources": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /**
     * List Sources
     * @description Distinct list of source values for filter dropdown.
     */
    get: operations["list_sources_api_v1_admin_leads_sources_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/api/v1/photos/{obj_id}/{file_id}": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /** Get Photo */
    get: operations["get_photo_api_v1_photos__obj_id___file_id__get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
  "/health": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    /** Health */
    get: operations["health_health_get"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
}
export type webhooks = Record<string, never>;
export interface components {
  schemas: {
    /**
     * ConceptInput
     * @description Stage 1a — input contract. Frozen interface for frontend codegen.
     */
    ConceptInput: {
      /**
       * Parcel Geojson
       * @description GeoJSON Polygon of the parcel (WGS84 / EPSG:4326)
       */
      parcel_geojson: {
        [key: string]: unknown;
      };
      /**
       * Housing Class
       * @default comfort
       * @enum {string}
       */
      housing_class: "econom" | "comfort" | "business";
      /**
       * Target Floors
       * @default 9
       */
      target_floors: number;
      /**
       * Development Type
       * @default mid_rise
       * @enum {string}
       */
      development_type: "spot" | "mid_rise" | "high_rise";
      /**
       * Land Cost Rub
       * @description Optional land cost for financial model
       */
      land_cost_rub?: number | null;
    };
    /** ConceptOutput */
    ConceptOutput: {
      /** Variants */
      variants: components["schemas"]["ConceptVariant"][];
    };
    /** ConceptVariant */
    ConceptVariant: {
      /**
       * Strategy
       * @enum {string}
       */
      strategy: "max_area" | "max_insolation" | "balanced";
      /** Buildings Geojson */
      buildings_geojson: {
        [key: string]: unknown;
      };
      teap: components["schemas"]["TEAP"];
      financial: components["schemas"]["FinancialModel"];
    };
    /**
     * EnqueueGeoJobRequest
     * @description Создать новый bulk geo-job.
     */
    EnqueueGeoJobRequest: {
      /** Name */
      name?: string | null;
      /** Job Kind */
      job_kind: string;
      /**
       * Source Kind
       * @default manual_list
       */
      source_kind: string;
      /**
       * Cad Nums
       * @description Список cad-номеров для обработки
       */
      cad_nums?: string[];
      /**
       * Thematic Id
       * @description 1=parcel, 2=quarter, 5=building
       * @default 2
       */
      thematic_id: number;
      /**
       * Region Codes
       * @description Для source=rosreestr_pending
       */
      region_codes?: number[] | null;
      /**
       * Rate Ms
       * @default 600
       */
      rate_ms: number;
    };
    /** FinancialModel */
    FinancialModel: {
      /** Revenue Rub */
      revenue_rub: number;
      /** Cost Rub */
      cost_rub: number;
      /** Gross Margin Rub */
      gross_margin_rub: number;
      /** Irr */
      irr: number;
    };
    /** HTTPValidationError */
    HTTPValidationError: {
      /** Detail */
      detail?: components["schemas"]["ValidationError"][];
    };
    /**
     * ObjectiveConfigUpdateRequest
     * @description PATCH-style — обновляет только переданные поля.
     */
    ObjectiveConfigUpdateRequest: {
      /** Cron Schedule */
      cron_schedule?: string | null;
      /** Groups Csv */
      groups_csv?: string | null;
      /** Use Ddu */
      use_ddu?: boolean | null;
      /** Use Dkp */
      use_dkp?: boolean | null;
      /** Period Months Back */
      period_months_back?: number | null;
      /** Inter Group Delay S */
      inter_group_delay_s?: number | null;
      /** Rate Ms */
      rate_ms?: number | null;
      /** Retries */
      retries?: number | null;
    };
    /** ParcelDetail */
    ParcelDetail: {
      /** Id */
      id: string;
      /** Cadastral Number */
      cadastral_number: string;
      /** Area Sqm */
      area_sqm: number;
      /** Vri */
      vri: string;
      /** Address */
      address: string | null;
      score: components["schemas"]["ScoreBreakdown"];
      /** Geometry Geojson */
      geometry_geojson: {
        [key: string]: unknown;
      };
      /** Enrichment */
      enrichment: {
        [key: string]: unknown;
      };
    };
    /** ParcelFilter */
    ParcelFilter: {
      /** Vri */
      vri?: string[] | null;
      /** Area Min Sqm */
      area_min_sqm?: number | null;
      /** Area Max Sqm */
      area_max_sqm?: number | null;
      /** Region */
      region?: string | null;
      /** Polygon Geojson */
      polygon_geojson?: {
        [key: string]: unknown;
      } | null;
      /** Text Search */
      text_search?: string | null;
    };
    /** ParcelSearchRequest */
    ParcelSearchRequest: {
      filters?: components["schemas"]["ParcelFilter"];
      weights?: components["schemas"]["ScoringWeights"];
      /**
       * Limit
       * @default 50
       */
      limit: number;
    };
    /** ParcelSearchResponse */
    ParcelSearchResponse: {
      /** Items */
      items: components["schemas"]["ParcelSummary"][];
      /** Total */
      total: number;
    };
    /** ParcelSummary */
    ParcelSummary: {
      /** Id */
      id: string;
      /** Cadastral Number */
      cadastral_number: string;
      /** Area Sqm */
      area_sqm: number;
      /** Vri */
      vri: string;
      /** Address */
      address: string | null;
      score: components["schemas"]["ScoreBreakdown"];
    };
    /** RecommendBucket */
    RecommendBucket: {
      /** Bucket */
      bucket: string;
      /** Share Pct */
      share_pct: number;
      /** Deal Count */
      deal_count: number;
      /** Area Avg M2 */
      area_avg_m2: number;
      /** Area Median M2 */
      area_median_m2: number;
      /** Price Median Per M2 */
      price_median_per_m2: number;
      /** Price P25 Per M2 */
      price_p25_per_m2: number;
      /** Price P75 Per M2 */
      price_p75_per_m2: number;
      /** Units Planned */
      units_planned?: number | null;
      /** Revenue Planned Rub */
      revenue_planned_rub?: number | null;
      /** Velocity Per Month */
      velocity_per_month?: number | null;
      /** Months To Sellout */
      months_to_sellout?: number | null;
    };
    /** RecommendComparable */
    RecommendComparable: {
      /** Obj Id */
      obj_id: number;
      /** Comm Name */
      comm_name?: string | null;
      /** Dev Name */
      dev_name?: string | null;
      /** Obj Class */
      obj_class?: string | null;
      /** Flat Count */
      flat_count?: number | null;
      /** Sold Perc */
      sold_perc?: number | null;
    };
    /** RecommendMixInput */
    RecommendMixInput: {
      /** District Name */
      district_name: string;
      /** Area Total M2 */
      area_total_m2?: number | null;
      /** Target Class */
      target_class?: ("Comfort" | "Comfort+" | "Business" | "Elite") | null;
      /**
       * Months Window
       * @default 12
       */
      months_window: number;
      /**
       * Price Factor
       * @default 1
       */
      price_factor: number;
      /** Target Months */
      target_months?: number | null;
    };
    /** RecommendMixOutput */
    RecommendMixOutput: {
      /** Scope */
      scope: {
        [key: string]: unknown;
      };
      /** Buckets */
      buckets: components["schemas"]["RecommendBucket"][];
      /** Summary */
      summary: {
        [key: string]: unknown;
      };
      /** Comparables */
      comparables: components["schemas"]["RecommendComparable"][];
    };
    /** ReleaseLockRequest */
    ReleaseLockRequest: {
      /** Region Code */
      region_code: number;
      /** Developers */
      developers?: string[] | null;
    };
    /** RevokeRequest */
    RevokeRequest: {
      /** Task Id */
      task_id: string;
      /**
       * Terminate
       * @default false
       */
      terminate: boolean;
    };
    /** ScoreBreakdown */
    ScoreBreakdown: {
      /** Total */
      total: number;
      /** Distance To Center */
      distance_to_center: number;
      /** Poi Density */
      poi_density: number;
      /** Neighborhood Price */
      neighborhood_price: number;
    };
    /** ScoringWeights */
    ScoringWeights: {
      /**
       * Distance To Center
       * @default 0.4
       */
      distance_to_center: number;
      /**
       * Poi Density
       * @default 0.3
       */
      poi_density: number;
      /**
       * Neighborhood Price
       * @default 0.3
       */
      neighborhood_price: number;
    };
    /**
     * TEAP
     * @description Технико-экономические показатели.
     */
    TEAP: {
      /** Built Area Sqm */
      built_area_sqm: number;
      /** Total Floor Area Sqm */
      total_floor_area_sqm: number;
      /** Residential Area Sqm */
      residential_area_sqm: number;
      /** Apartments Count */
      apartments_count: number;
      /** Density */
      density: number;
      /** Parking Spaces */
      parking_spaces: number;
    };
    /** TriggerKnRequest */
    TriggerKnRequest: {
      /** Region Code */
      region_code: number;
      /** Developers */
      developers?: string[] | null;
      /**
       * Fetch Flats
       * @default true
       */
      fetch_flats: boolean;
      /**
       * Extras
       * @default true
       */
      extras: boolean;
      /**
       * Download Photos
       * @default false
       */
      download_photos: boolean;
      /**
       * Force
       * @default false
       */
      force: boolean;
    };
    /** TriggerObjectiveEtlRequest */
    TriggerObjectiveEtlRequest: {
      /**
       * Sqlite Path
       * @description Override settings.objective_anton_sqlite_path (abs file path)
       */
      sqlite_path?: string | null;
    };
    /**
     * TriggerObjectiveSyncRequest
     * @description Ручной триггер нашего sync_all_groups (платный API Объектива).
     */
    TriggerObjectiveSyncRequest: {
      /**
       * Groups
       * @description Override settings.objective_sync_groups (csv). Если None — берёт дефолт из settings.
       */
      groups?: string[] | null;
    };
    /** ValidationError */
    ValidationError: {
      /** Location */
      loc: (string | number)[];
      /** Message */
      msg: string;
      /** Error Type */
      type: string;
      /** Input */
      input?: unknown;
      /** Context */
      ctx?: Record<string, never>;
    };
  };
  responses: never;
  parameters: never;
  requestBodies: never;
  headers: never;
  pathItems: never;
}
export type $defs = Record<string, never>;
export interface operations {
  create_concept_api_v1_concepts_post: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody: {
      content: {
        "application/json": components["schemas"]["ConceptInput"];
      };
    };
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["ConceptOutput"];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  search_parcels_api_v1_parcels_search_post: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody: {
      content: {
        "application/json": components["schemas"]["ParcelSearchRequest"];
      };
    };
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["ParcelSearchResponse"];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  get_parcel_api_v1_parcels__parcel_id__get: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        parcel_id: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["ParcelDetail"];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  sverdl_market_pulse_api_v1_analytics_sverdl_market_pulse_get: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
    };
  };
  sverdl_quartirography_api_v1_analytics_sverdl_quartirography_get: {
    parameters: {
      query?: {
        source?: "portfolio" | "deals";
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  sverdl_pipeline_api_v1_analytics_sverdl_pipeline_get: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
    };
  };
  sverdl_districts_api_v1_analytics_sverdl_districts_get: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
    };
  };
  sverdl_yandex_listings_api_v1_analytics_sverdl_yandex_listings_get: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
    };
  };
  developers_top_api_v1_analytics_developers_top_get: {
    parameters: {
      query?: {
        limit?: number;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  developers_history_api_v1_analytics_developers_history_get: {
    parameters: {
      query: {
        ids: string;
      };
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  developer_detail_api_v1_analytics_developers__developer_id__get: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        developer_id: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  developer_portfolio_api_v1_analytics_developers__developer_id__portfolio_get: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        developer_id: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  object_sale_graph_api_v1_analytics_object__obj_id__sale_graph_get: {
    parameters: {
      query?: {
        type?: string | null;
      };
      header?: never;
      path: {
        obj_id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  object_sales_agg_api_v1_analytics_object__obj_id__sales_agg_get: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        obj_id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  object_infrastructure_api_v1_analytics_object__obj_id__infrastructure_get: {
    parameters: {
      query?: {
        category?: string | null;
        max_distance?: number;
      };
      header?: never;
      path: {
        obj_id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  object_photos_api_v1_analytics_object__obj_id__photos_get: {
    parameters: {
      query?: {
        limit?: number;
      };
      header?: never;
      path: {
        obj_id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  object_detail_api_v1_analytics_object__obj_id__get: {
    parameters: {
      query?: never;
      header?: never;
      path: {
        obj_id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  prinzip_insights_api_v1_analytics_prinzip_insights_get: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
    };
  };
  prinzip_districts_api_v1_analytics_prinzip_districts_get: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
    };
  };
  prinzip_objects_api_v1_analytics_prinzip_objects_get: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
    };
  };
  recommend_mix_api_v1_analytics_recommend_mix_post: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody: {
      content: {
        "application/json": components["schemas"]["RecommendMixInput"];
      };
    };
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["RecommendMixOutput"];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  trigger_kn_sweep_api_v1_admin_scrape_kn_post: {
    parameters: {
      query?: never;
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody: {
      content: {
        "application/json": components["schemas"]["TriggerKnRequest"];
      };
    };
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  queue_status_api_v1_admin_scrape_queue_get: {
    parameters: {
      query?: never;
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  release_lock_api_v1_admin_scrape_release_lock_post: {
    parameters: {
      query?: never;
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody: {
      content: {
        "application/json": components["schemas"]["ReleaseLockRequest"];
      };
    };
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  revoke_task_api_v1_admin_scrape_revoke_post: {
    parameters: {
      query?: never;
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody: {
      content: {
        "application/json": components["schemas"]["RevokeRequest"];
      };
    };
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  list_failures_api_v1_admin_scrape_failures_get: {
    parameters: {
      query?: {
        run_id?: number | null;
        limit?: number;
      };
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  list_logs_api_v1_admin_scrape_logs_get: {
    parameters: {
      query?: {
        run_id?: number | null;
        since_id?: number | null;
        limit?: number;
      };
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  trigger_objective_etl_api_v1_admin_scrape_objective_post: {
    parameters: {
      query?: never;
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody: {
      content: {
        "application/json": components["schemas"]["TriggerObjectiveEtlRequest"];
      };
    };
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  list_objective_runs_api_v1_admin_scrape_objective_runs_get: {
    parameters: {
      query?: {
        limit?: number;
      };
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  trigger_objective_sync_our_api_v1_admin_scrape_objective_sync_our_post: {
    parameters: {
      query?: never;
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody: {
      content: {
        "application/json": components["schemas"]["TriggerObjectiveSyncRequest"];
      };
    };
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  get_objective_config_api_v1_admin_scrape_objective_config_get: {
    parameters: {
      query?: never;
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  update_objective_config_api_v1_admin_scrape_objective_config_put: {
    parameters: {
      query?: never;
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody: {
      content: {
        "application/json": components["schemas"]["ObjectiveConfigUpdateRequest"];
      };
    };
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  objective_coverage_api_v1_admin_scrape_objective_coverage_get: {
    parameters: {
      query?: never;
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  list_geo_jobs_api_v1_admin_scrape_geo_jobs_get: {
    parameters: {
      query?: {
        limit?: number;
      };
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  enqueue_geo_job_api_v1_admin_scrape_geo_jobs_post: {
    parameters: {
      query?: never;
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody: {
      content: {
        "application/json": components["schemas"]["EnqueueGeoJobRequest"];
      };
    };
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  cancel_geo_job_api_v1_admin_scrape_geo_jobs__job_id__cancel_post: {
    parameters: {
      query?: never;
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path: {
        job_id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  resume_geo_job_api_v1_admin_scrape_geo_jobs__job_id__resume_post: {
    parameters: {
      query?: never;
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path: {
        job_id: number;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  list_all_runs_api_v1_admin_scrape_all_runs_get: {
    parameters: {
      query?: {
        scraper_type?: string | null;
        limit?: number;
      };
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  list_all_logs_api_v1_admin_scrape_all_logs_get: {
    parameters: {
      query?: {
        scraper_type?: string | null;
        run_id?: number | null;
        limit?: number;
      };
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  list_runs_api_v1_admin_scrape_runs_get: {
    parameters: {
      query?: {
        limit?: number;
      };
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  list_leads_api_v1_admin_leads__get: {
    parameters: {
      query?: {
        status?: string | null;
        source?: string | null;
        converted?: boolean | null;
        obj_id?: number | null;
        search?: string | null;
        /** @description YYYY-MM-DD */
        date_from?: string | null;
        /** @description YYYY-MM-DD */
        date_to?: string | null;
        sort?: "created_desc" | "created_asc";
        limit?: number;
        offset?: number;
      };
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  leads_stats_api_v1_admin_leads_stats_get: {
    parameters: {
      query?: {
        months?: number;
      };
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          };
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  funnel_monthly_api_v1_admin_leads_funnel_monthly_get: {
    parameters: {
      query?: {
        months?: number;
      };
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  funnel_by_source_api_v1_admin_leads_funnel_by_source_get: {
    parameters: {
      query?: {
        months?: number;
      };
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  funnel_by_object_api_v1_admin_leads_funnel_by_object_get: {
    parameters: {
      query?: never;
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: unknown;
          }[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  list_sources_api_v1_admin_leads_sources_get: {
    parameters: {
      query?: never;
      header?: {
        "X-Admin-Token"?: string | null;
      };
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": string[];
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  get_photo_api_v1_photos__obj_id___file_id__get: {
    parameters: {
      query?: {
        size?: "thumb" | "full";
      };
      header?: never;
      path: {
        obj_id: number;
        file_id: string;
      };
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": unknown;
        };
      };
      /** @description Validation Error */
      422: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": components["schemas"]["HTTPValidationError"];
        };
      };
    };
  };
  health_health_get: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": {
            [key: string]: string;
          };
        };
      };
    };
  };
}
