{"openapi":"3.1.0","info":{"title":"stroi.homes Public API","description":"Публичный API мониторинга объектов недвижимости.\n\nДанные обновляются автоматически. Авторизация не требуется.\nRate limit: 120 запросов/мин с одного IP.","version":"0.19.1"},"paths":{"/api/v1/health":{"get":{"tags":["health"],"summary":"Service healthcheck","description":"Returns overall service status and per-developer monitoring health.\nUsed by Railway.com for readiness / liveness probes.\nReturns 503 if DB or Redis are not ready (startup probe).","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/api/v1/registration-status":{"get":{"tags":["registration"],"summary":"Objects with open registration","description":"Returns all objects where registration_open=true across all active developers. Cached for 30 seconds.","operationId":"registration_status_api_v1_registration_status_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RegistrationStatusItem"},"title":"Response Registration Status Api V1 Registration Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/developers":{"get":{"tags":["developers"],"summary":"List of monitored developers","description":"Returns all non-archived developers with object count. Cached for 60 seconds.","operationId":"list_developers_api_v1_developers_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeveloperItem"},"title":"Response List Developers Api V1 Developers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/developers/{developer_id}/channels":{"get":{"tags":["developers"],"summary":"List Telegram channels for developer","description":"Returns enabled Telegram channels connected to the developer.","operationId":"list_developer_channels_api_v1_developers__developer_id__channels_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"developer_id","in":"path","required":true,"schema":{"type":"string","title":"Developer Id"}},{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeveloperChannelItem"},"title":"Response List Developer Channels Api V1 Developers  Developer Id  Channels Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/developers/{developer_id}/destinations":{"get":{"tags":["developers"],"summary":"List public destinations for developer","description":"Returns enabled Telegram/Threads/Viber destinations connected to the developer, in that platform order.","operationId":"list_developer_destinations_api_v1_developers__developer_id__destinations_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"developer_id","in":"path","required":true,"schema":{"type":"string","title":"Developer Id"}},{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicDestinationOut"},"title":"Response List Developer Destinations Api V1 Developers  Developer Id  Destinations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/developers/{developer_id}/reviews":{"get":{"tags":["developers"],"summary":"List reviews for developer","operationId":"list_developer_reviews_api_v1_developers__developer_id__reviews_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"developer_id","in":"path","required":true,"schema":{"type":"string","title":"Developer Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}},{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/src__api__routers__developers__ReviewListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["developers"],"summary":"Create Developer Review","operationId":"create_developer_review_api_v1_developers__developer_id__reviews_post","parameters":[{"name":"developer_id","in":"path","required":true,"schema":{"type":"string","title":"Developer Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Developer Review Api V1 Developers  Developer Id  Reviews Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/objects/suggestions":{"get":{"tags":["objects"],"summary":"Search suggestions","description":"Returns distinct titles, addresses and buildings matching the query, with fuzzy matching.","operationId":"object_suggestions_api_v1_objects_suggestions_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":100,"default":"","title":"Q"}},{"name":"developer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":8,"title":"Limit"}},{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuggestionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/objects":{"get":{"tags":["objects"],"summary":"List public objects across developers","description":"Returns paginated objects across all non-archived developers with optional filtering.","operationId":"list_public_objects_api_v1_objects_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search by title, external_id, address or building","title":"Search"},"description":"Search by title, external_id, address or building"},{"name":"developer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Developer slug","title":"Developer Id"},"description":"Developer slug"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"for_sale|booked|sold|removed","title":"Status"},"description":"for_sale|booked|sold|removed"},{"name":"registration_open","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Registration Open"}},{"name":"object_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"apartment|apartments|commercial|parking|storage","title":"Object Type"},"description":"apartment|apartments|commercial|parking|storage"},{"name":"object_type_slug","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by object type tree node slug (includes subtypes)","title":"Object Type Slug"},"description":"Filter by object type tree node slug (includes subtypes)"},{"name":"building","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Building"}},{"name":"city","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"}},{"name":"min_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Min Price"}},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Max Price"}},{"name":"min_area","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Min Area"}},{"name":"max_area","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Max Area"}},{"name":"rooms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rooms"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Page Size"}},{"name":"sort","in":"query","required":false,"schema":{"enum":["price_asc","price_desc","area_asc","area_desc","updated_at_desc"],"type":"string","default":"updated_at_desc","title":"Sort"}},{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/objects/cities":{"get":{"tags":["objects"],"summary":"List distinct cities","description":"Returns sorted list of distinct non-null cities from non-archived developers.","operationId":"list_object_cities_api_v1_objects_cities_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Response List Object Cities Api V1 Objects Cities Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/objects/recent":{"get":{"tags":["objects"],"summary":"List recent public objects","description":"Returns paginated objects first seen within a recent time window.","operationId":"list_recent_objects_api_v1_objects_recent_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search by title, external_id, address or building","title":"Search"},"description":"Search by title, external_id, address or building"},{"name":"developer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Developer slug","title":"Developer Id"},"description":"Developer slug"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"for_sale|booked|sold|removed","title":"Status"},"description":"for_sale|booked|sold|removed"},{"name":"registration_open","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Registration Open"}},{"name":"object_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"apartment|apartments|commercial|parking|storage","title":"Object Type"},"description":"apartment|apartments|commercial|parking|storage"},{"name":"building","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Building"}},{"name":"city","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"}},{"name":"min_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Min Price"}},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Max Price"}},{"name":"min_area","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Min Area"}},{"name":"max_area","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Max Area"}},{"name":"rooms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rooms"}},{"name":"since_hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"default":24,"title":"Since Hours"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Page Size"}},{"name":"sort","in":"query","required":false,"schema":{"enum":["first_seen_at_desc","price_asc","price_desc","area_asc","area_desc","updated_at_desc"],"type":"string","default":"first_seen_at_desc","title":"Sort"}},{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/objects/batch":{"post":{"tags":["objects"],"summary":"Batch lookup public objects","description":"Returns public objects for the provided refs and reports refs that are missing.","operationId":"batch_objects_api_v1_objects_batch_post","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectBatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectBatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/developers/{developer_id}/objects":{"get":{"tags":["objects"],"summary":"List developer objects","description":"Returns paginated objects for a developer with optional filtering.","operationId":"list_objects_api_v1_developers__developer_id__objects_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"developer_id","in":"path","required":true,"schema":{"type":"string","title":"Developer Id"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search by title, external_id or address","title":"Search"},"description":"Search by title, external_id or address"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"for_sale|booked|sold|removed","title":"Status"},"description":"for_sale|booked|sold|removed"},{"name":"registration_open","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Registration Open"}},{"name":"object_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"apartment|apartments|commercial|parking|storage","title":"Object Type"},"description":"apartment|apartments|commercial|parking|storage"},{"name":"object_type_slug","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by object type tree node slug (includes subtypes)","title":"Object Type Slug"},"description":"Filter by object type tree node slug (includes subtypes)"},{"name":"building","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Building"}},{"name":"city","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"}},{"name":"min_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Min Price"}},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Max Price"}},{"name":"min_area","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Min Area"}},{"name":"max_area","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Max Area"}},{"name":"rooms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rooms"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Page Size"}},{"name":"sort","in":"query","required":false,"schema":{"enum":["price_asc","price_desc","area_asc","area_desc","updated_at_desc"],"type":"string","default":"updated_at_desc","title":"Sort"}},{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/developers/{developer_id}/objects/{external_id}":{"get":{"tags":["objects"],"summary":"Get single object","description":"Returns a single object by developer and external_id.","operationId":"get_object_api_v1_developers__developer_id__objects__external_id__get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"developer_id","in":"path","required":true,"schema":{"type":"string","title":"Developer Id"}},{"name":"external_id","in":"path","required":true,"schema":{"type":"string","title":"External Id"}},{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/objects/{object_id}/history":{"get":{"tags":["objects"],"summary":"Get Object History","operationId":"get_object_history_api_v1_objects__object_id__history_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"object_id","in":"path","required":true,"schema":{"type":"string","title":"Object Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Before"}},{"name":"fields","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fields"}},{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/events":{"get":{"tags":["events"],"summary":"Event history","description":"Returns historical monitoring events with optional filtering. Max page_size=500.","operationId":"list_events_api_v1_events_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"developer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by developer slug","title":"Developer Id"},"description":"Filter by developer slug"},{"name":"object_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by object external_id","title":"Object Id"},"description":"Filter by object external_id"},{"name":"event_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"OBJECT_APPEARED|OBJECT_REMOVED|OBJECT_UPDATED|REGISTRATION_OPENED|REGISTRATION_CLOSED","title":"Event Type"},"description":"OBJECT_APPEARED|OBJECT_REMOVED|OBJECT_UPDATED|REGISTRATION_OPENED|REGISTRATION_CLOSED"},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"ISO 8601 lower bound (inclusive)","title":"Since"},"description":"ISO 8601 lower bound (inclusive)"},{"name":"until","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"ISO 8601 upper bound (inclusive)","title":"Until"},"description":"ISO 8601 upper bound (inclusive)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/events/stream":{"get":{"tags":["events"],"summary":"SSE event stream","description":"Server-Sent Events stream of monitoring events. Supports Last-Event-ID header for reconnect recovery. Keepalive ping every 15 seconds. Filter by developer_id and/or event_types (comma-separated).","operationId":"events_stream_api_v1_events_stream_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"developer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated developer slugs","title":"Developer Id"},"description":"Comma-separated developer slugs"},{"name":"event_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated event types","title":"Event Types"},"description":"Comma-separated event types"},{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"SSE stream","content":{"application/json":{"schema":{}},"text/event-stream":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/field-configs":{"get":{"tags":["field-configs"],"summary":"List object field metadata","description":"Returns public metadata for object fields. Cached, max-age 300s.","operationId":"list_field_configs_api_v1_field_configs_get","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FieldConfigOut"},"title":"Response List Field Configs Api V1 Field Configs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pending-developers":{"post":{"tags":["pending-developers"],"summary":"Submit developer connection request","description":"Submit a request to connect a developer. If the developer already exists, returns existing developer info.","operationId":"create_pending_developer_api_v1_pending_developers_post","security":[{"APIKeyHeader":[]},{"HTTPBearer":[]}],"parameters":[{"name":"api_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingDeveloperCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingDeveloperOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sandbox":{"get":{"tags":["sandbox"],"summary":"Sandbox — информация","description":"Описание доступных sandbox-эндпоинтов.","operationId":"sandbox_index_api_v1_sandbox_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxInfo"}}}}}}},"/api/v1/sandbox/health":{"get":{"tags":["sandbox"],"summary":"Sandbox — health check","operationId":"sandbox_health_api_v1_sandbox_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Sandbox Health Api V1 Sandbox Health Get"}}}}}}},"/api/v1/sandbox/developers":{"get":{"tags":["sandbox"],"summary":"Sandbox — список застройщиков","operationId":"sandbox_developers_api_v1_sandbox_developers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Sandbox Developers Api V1 Sandbox Developers Get"}}}}}}},"/api/v1/sandbox/developers/{developer_id}/channels":{"get":{"tags":["sandbox"],"summary":"Sandbox — каналы застройщика","operationId":"sandbox_developer_channels_api_v1_sandbox_developers__developer_id__channels_get","parameters":[{"name":"developer_id","in":"path","required":true,"schema":{"type":"string","title":"Developer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Sandbox Developer Channels Api V1 Sandbox Developers  Developer Id  Channels Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sandbox/developers/{developer_id}/stats":{"get":{"tags":["sandbox"],"summary":"Sandbox — статистика застройщика","operationId":"sandbox_developer_stats_api_v1_sandbox_developers__developer_id__stats_get","parameters":[{"name":"developer_id","in":"path","required":true,"schema":{"type":"string","title":"Developer Id"}},{"name":"period","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":7,"default":30,"title":"Period"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Sandbox Developer Stats Api V1 Sandbox Developers  Developer Id  Stats Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sandbox/objects":{"get":{"tags":["sandbox"],"summary":"Sandbox — каталог объектов","operationId":"sandbox_objects_list_api_v1_sandbox_objects_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"developer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"registration_open","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Registration Open"}},{"name":"object_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Type"}},{"name":"building","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Building"}},{"name":"min_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Min Price"}},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Max Price"}},{"name":"min_area","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Min Area"}},{"name":"max_area","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Max Area"}},{"name":"rooms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rooms"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Page Size"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"updated_at_desc","title":"Sort"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Sandbox Objects List Api V1 Sandbox Objects Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sandbox/developers/{developer_id}/objects":{"get":{"tags":["sandbox"],"summary":"Sandbox — объекты застройщика","operationId":"sandbox_developer_objects_api_v1_sandbox_developers__developer_id__objects_get","parameters":[{"name":"developer_id","in":"path","required":true,"schema":{"type":"string","title":"Developer Id"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"registration_open","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Registration Open"}},{"name":"object_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Type"}},{"name":"building","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Building"}},{"name":"min_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Min Price"}},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Max Price"}},{"name":"min_area","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Min Area"}},{"name":"max_area","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Max Area"}},{"name":"rooms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rooms"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Page Size"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"updated_at_desc","title":"Sort"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Sandbox Developer Objects Api V1 Sandbox Developers  Developer Id  Objects Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sandbox/objects/{developer_id}/{external_id}":{"get":{"tags":["sandbox"],"summary":"Sandbox — один объект","operationId":"sandbox_object_detail_api_v1_sandbox_objects__developer_id___external_id__get","parameters":[{"name":"developer_id","in":"path","required":true,"schema":{"type":"string","title":"Developer Id"}},{"name":"external_id","in":"path","required":true,"schema":{"type":"string","title":"External Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Sandbox Object Detail Api V1 Sandbox Objects  Developer Id   External Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sandbox/events":{"get":{"tags":["sandbox"],"summary":"Sandbox — история событий","operationId":"sandbox_events_api_v1_sandbox_events_get","parameters":[{"name":"developer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Id"}},{"name":"object_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Id"}},{"name":"event_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Type"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Since"}},{"name":"until","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Until"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Sandbox Events Api V1 Sandbox Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sandbox/events/stream":{"get":{"tags":["sandbox"],"summary":"Sandbox — SSE-стрим случайных событий","description":"Непрерывный Server-Sent Events стрим со случайными событиями. Новое событие каждые 3-7 секунд. Формат идентичен /api/v1/events/stream.","operationId":"sandbox_events_stream_api_v1_sandbox_events_stream_get","responses":{"200":{"description":"SSE stream","content":{"application/json":{"schema":{}},"text/event-stream":{}}}}}},"/api/v1/sandbox/registration-status":{"get":{"tags":["sandbox"],"summary":"Sandbox — статусы регистрации","operationId":"sandbox_registration_status_api_v1_sandbox_registration_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Sandbox Registration Status Api V1 Sandbox Registration Status Get"}}}}}}},"/api/v1/sandbox/field-configs":{"get":{"tags":["sandbox"],"summary":"Sandbox — конфигурация полей","operationId":"sandbox_field_configs_api_v1_sandbox_field_configs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Sandbox Field Configs Api V1 Sandbox Field Configs Get"}}}}}}},"/api/v1/developer-tokens":{"post":{"tags":["developer-tokens"],"summary":"Create Token","operationId":"create_token_api_v1_developer_tokens_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenCreate","default":{}}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/developers/{developer_id}/stats":{"get":{"tags":["analytics"],"summary":"Public developer statistics","description":"Returns aggregated interest metrics for a developer. Only shows positive values (>=10).","operationId":"get_developer_stats_api_v1_developers__developer_id__stats_get","parameters":[{"name":"developer_id","in":"path","required":true,"schema":{"type":"string","title":"Developer Id"}},{"name":"period","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":7,"description":"Period in days","default":30,"title":"Period"},"description":"Period in days"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeveloperPublicStats"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/developers/{developer_id}/objects/{object_external_id}/stats":{"get":{"tags":["analytics"],"summary":"Public object view statistics","description":"Returns total views for an object in the last N days. Returns null if below threshold (10).","operationId":"get_object_stats_api_v1_developers__developer_id__objects__object_external_id__stats_get","parameters":[{"name":"developer_id","in":"path","required":true,"schema":{"type":"string","title":"Developer Id"}},{"name":"object_external_id","in":"path","required":true,"schema":{"type":"string","title":"Object External Id"}},{"name":"period","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":7,"default":30,"title":"Period"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ObjectPublicStats"},{"type":"null"}],"title":"Response Get Object Stats Api V1 Developers  Developer Id  Objects  Object External Id  Stats Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/services/{service_id}/stats":{"get":{"tags":["analytics"],"summary":"Public service view statistics","description":"Returns total views for a service in the last N days. Returns null if below threshold (10).","operationId":"get_service_stats_api_v1_services__service_id__stats_get","parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"string","title":"Service Id"}},{"name":"period","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":7,"default":30,"title":"Period"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ServicePublicStats"},{"type":"null"}],"title":"Response Get Service Stats Api V1 Services  Service Id  Stats Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AcceptBody":{"properties":{"keep_lock":{"type":"boolean","title":"Keep Lock","default":true}},"type":"object","title":"AcceptBody"},"AdapterCheckItem":{"properties":{"developer_id":{"type":"string","format":"uuid","title":"Developer Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["developer_id","name"],"title":"AdapterCheckItem"},"AdapterCheckRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdapterCheckItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"AdapterCheckRequest"},"AdapterConflictStatus":{"properties":{"index":{"type":"integer","title":"Index"},"has_conflict":{"type":"boolean","title":"Has Conflict"},"existing_adapter_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Existing Adapter Id"}},"type":"object","required":["index","has_conflict"],"title":"AdapterConflictStatus"},"AdapterCreate":{"properties":{"developer_id":{"type":"string","format":"uuid","title":"Developer Id"},"name":{"type":"string","maxLength":256,"minLength":1,"title":"Name"},"is_enabled":{"type":"boolean","title":"Is Enabled","default":true},"use_playwright":{"type":"boolean","title":"Use Playwright","default":true},"retry_count":{"type":"integer","minimum":0.0,"title":"Retry Count","default":3},"retry_delay_seconds":{"type":"integer","minimum":0.0,"title":"Retry Delay Seconds","default":30},"retry_backoff_multiplier":{"type":"number","exclusiveMinimum":0.0,"title":"Retry Backoff Multiplier","default":2.0}},"type":"object","required":["developer_id","name"],"title":"AdapterCreate"},"AdapterExportPayload":{"properties":{"version":{"type":"string","title":"Version","default":"1"},"exported_at":{"type":"string","title":"Exported At"},"adapters":{"items":{"$ref":"#/components/schemas/ExportAdapterItem"},"type":"array","title":"Adapters"}},"type":"object","required":["exported_at","adapters"],"title":"AdapterExportPayload"},"AdapterExportRequest":{"properties":{"adapter_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Adapter Ids"}},"type":"object","required":["adapter_ids"],"title":"AdapterExportRequest"},"AdapterImportItem":{"properties":{"developer_id":{"type":"string","format":"uuid","title":"Developer Id"},"name":{"type":"string","maxLength":256,"minLength":1,"title":"Name"},"conflict_action":{"type":"string","title":"Conflict Action","default":"keep_both"},"data":{"$ref":"#/components/schemas/ExportAdapterItem"}},"type":"object","required":["developer_id","name","data"],"title":"AdapterImportItem"},"AdapterImportRequest":{"properties":{"adapters":{"items":{"$ref":"#/components/schemas/AdapterImportItem"},"type":"array","title":"Adapters"}},"type":"object","required":["adapters"],"title":"AdapterImportRequest"},"AdapterImportResult":{"properties":{"index":{"type":"integer","title":"Index"},"name":{"type":"string","title":"Name"},"developer_id":{"type":"string","title":"Developer Id"},"status":{"type":"string","title":"Status"},"adapter_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Adapter Id"},"python_source_saved":{"type":"boolean","title":"Python Source Saved","default":false}},"type":"object","required":["index","name","developer_id","status"],"title":"AdapterImportResult"},"AdapterOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"source_category":{"type":"string","title":"Source Category"},"adapter_type":{"type":"string","title":"Adapter Type"},"custom_adapter_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Adapter Slug"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"use_playwright":{"type":"boolean","title":"Use Playwright"},"retry_count":{"type":"integer","title":"Retry Count"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"retry_backoff_multiplier":{"type":"number","title":"Retry Backoff Multiplier"},"created_at":{"title":"Created At"},"updated_at":{"title":"Updated At"}},"type":"object","required":["id","name","source_category","adapter_type","custom_adapter_slug","is_enabled","use_playwright","retry_count","retry_delay_seconds","retry_backoff_multiplier","created_at","updated_at"],"title":"AdapterOut"},"AdapterPageOut":{"properties":{"id":{"type":"string","title":"Id"},"adapter_id":{"type":"string","title":"Adapter Id"},"page_type":{"type":"string","title":"Page Type"},"url_template":{"type":"string","title":"Url Template"},"is_paginated":{"type":"boolean","title":"Is Paginated"},"pagination_start":{"type":"integer","title":"Pagination Start"},"pagination_max":{"type":"integer","title":"Pagination Max"},"wait_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wait Selector"},"wait_timeout_ms":{"type":"integer","title":"Wait Timeout Ms"},"dismiss_selectors":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Dismiss Selectors"},"sort_order":{"type":"integer","title":"Sort Order"},"parent_page_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Page Id"},"link_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Selector"},"link_attribute":{"type":"string","title":"Link Attribute"},"created_at":{"title":"Created At"},"updated_at":{"title":"Updated At"}},"type":"object","required":["id","adapter_id","page_type","url_template","is_paginated","pagination_start","pagination_max","wait_selector","wait_timeout_ms","dismiss_selectors","sort_order","parent_page_id","link_selector","link_attribute","created_at","updated_at"],"title":"AdapterPageOut"},"AdapterRunLogOut":{"properties":{"id":{"type":"integer","title":"Id"},"cycle":{"type":"string","title":"Cycle"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"object_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Object Count"},"prev_object_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prev Object Count"},"null_counts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Null Counts"},"exception_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exception Type"},"exception_msg":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exception Msg"},"spike_flag":{"type":"boolean","title":"Spike Flag"},"spike_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spike Reason"}},"type":"object","required":["id","cycle","started_at","duration_ms","object_count","prev_object_count","null_counts","exception_type","exception_msg","spike_flag","spike_reason"],"title":"AdapterRunLogOut"},"AdapterTestResponse":{"properties":{"ok":{"type":"boolean","title":"Ok"},"rows":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Rows"},"errors":{"items":{"type":"string"},"type":"array","title":"Errors"}},"type":"object","required":["ok","rows","errors"],"title":"AdapterTestResponse"},"AdapterUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":256,"minLength":1},{"type":"null"}],"title":"Name"},"is_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Enabled"},"use_playwright":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Playwright"},"retry_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Retry Count"},"retry_delay_seconds":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Retry Delay Seconds"},"retry_backoff_multiplier":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Retry Backoff Multiplier"},"custom_adapter_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Adapter Slug"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","title":"AdapterUpdate"},"AddSpecialistRequest":{"properties":{"service_id":{"type":"string","title":"Service Id"}},"type":"object","required":["service_id"],"title":"AddSpecialistRequest"},"AdminCreate":{"properties":{"telegram_chat_id":{"type":"integer","title":"Telegram Chat Id"},"telegram_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Username"},"telegram_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Name"}},"type":"object","required":["telegram_chat_id"],"title":"AdminCreate"},"AdminEventOut":{"properties":{"id":{"type":"string","title":"Id"},"developer_id":{"type":"string","title":"Developer Id"},"developer_name":{"type":"string","title":"Developer Name"},"object_external_id":{"type":"string","title":"Object External Id"},"object_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Title"},"event_type":{"type":"string","title":"Event Type"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"changed_fields":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Changed Fields"},"delivery_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivery Status"},"delivery_attempts":{"type":"integer","title":"Delivery Attempts"},"delivered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivered At"},"published_to_channel":{"type":"boolean","title":"Published To Channel"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"}},"type":"object","required":["id","developer_id","developer_name","object_external_id","event_type","occurred_at","changed_fields","delivery_status","delivery_attempts","delivered_at","published_to_channel","published_at"],"title":"AdminEventOut"},"AdminEventsResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"items":{"items":{"$ref":"#/components/schemas/AdminEventOut"},"type":"array","title":"Items"}},"type":"object","required":["total","page","page_size","items"],"title":"AdminEventsResponse"},"AdminHistoryChange":{"properties":{"field":{"type":"string","title":"Field"},"old":{"title":"Old"},"new":{"title":"New"}},"type":"object","required":["field","old","new"],"title":"AdminHistoryChange"},"AdminHistoryEntry":{"properties":{"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"event_type":{"type":"string","title":"Event Type"},"event_id":{"type":"string","title":"Event Id"},"source_developer_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Developer Slug"},"source_external_id":{"type":"string","title":"Source External Id"},"delivery_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivery Status"},"delivery_attempts":{"type":"integer","title":"Delivery Attempts"},"delivered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivered At"},"published_to_channel":{"type":"boolean","title":"Published To Channel"},"changes":{"items":{"$ref":"#/components/schemas/AdminHistoryChange"},"type":"array","title":"Changes"}},"type":"object","required":["occurred_at","event_type","event_id","source_developer_slug","source_external_id","delivery_status","delivery_attempts","delivered_at","published_to_channel","changes"],"title":"AdminHistoryEntry"},"AdminHistorySource":{"properties":{"developer_slug":{"type":"string","title":"Developer Slug"},"external_id":{"type":"string","title":"External Id"}},"type":"object","required":["developer_slug","external_id"],"title":"AdminHistorySource"},"AdminLeadOut":{"properties":{"id":{"type":"string","title":"Id"},"status":{"type":"string","title":"Status"},"service_provider_id":{"type":"string","title":"Service Provider Id"},"service_business_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Service Business Id"},"object_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Title"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","status","service_provider_id","service_business_id","object_title","created_at"],"title":"AdminLeadOut"},"AdminModOut":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"version":{"type":"string","title":"Version"},"platforms":{"items":{},"type":"array","title":"Platforms"},"revoked":{"type":"boolean","title":"Revoked"},"revoked_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revoked Reason"},"install_count":{"type":"integer","title":"Install Count"}},"type":"object","required":["slug","name","version","platforms","revoked","revoked_reason","install_count"],"title":"AdminModOut"},"AdminMonitoringItem":{"properties":{"developer_slug":{"type":"string","title":"Developer Slug"},"developer_name":{"type":"string","title":"Developer Name"},"status":{"type":"string","title":"Status"},"op_status":{"type":"string","title":"Op Status"},"last_event_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Event At"},"events_last_period":{"type":"integer","title":"Events Last Period"},"objects_total":{"type":"integer","title":"Objects Total"},"run_history":{"items":{"$ref":"#/components/schemas/RunHistoryEntry"},"type":"array","title":"Run History"}},"type":"object","required":["developer_slug","developer_name","status","op_status","last_event_at","events_last_period","objects_total","run_history"],"title":"AdminMonitoringItem"},"AdminMonitoringList":{"properties":{"period_days":{"type":"integer","title":"Period Days"},"developers":{"items":{"$ref":"#/components/schemas/AdminMonitoringItem"},"type":"array","title":"Developers"}},"type":"object","required":["period_days","developers"],"title":"AdminMonitoringList"},"AdminObjectDetail":{"properties":{"object_external_id":{"type":"string","title":"Object External Id"},"developer_slug":{"type":"string","title":"Developer Slug"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"period_days":{"type":"integer","title":"Period Days"},"total_views":{"type":"integer","title":"Total Views"},"daily":{"items":{"$ref":"#/components/schemas/DailyViewEntry"},"type":"array","title":"Daily"}},"type":"object","required":["object_external_id","developer_slug","title","period_days","total_views","daily"],"title":"AdminObjectDetail"},"AdminObjectHistoryResponse":{"properties":{"object_id":{"type":"string","title":"Object Id"},"sources":{"items":{"$ref":"#/components/schemas/AdminHistorySource"},"type":"array","title":"Sources"},"entries":{"items":{"$ref":"#/components/schemas/AdminHistoryEntry"},"type":"array","title":"Entries"},"next_before":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Before"}},"type":"object","required":["object_id","sources","entries","next_before"],"title":"AdminObjectHistoryResponse"},"AdminObjectItem":{"properties":{"object_external_id":{"type":"string","title":"Object External Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"total_views":{"type":"integer","title":"Total Views"},"views_by_source":{"additionalProperties":{"type":"integer"},"type":"object","title":"Views By Source"},"trend_7d":{"type":"integer","title":"Trend 7D"},"trend_prev_7d":{"type":"integer","title":"Trend Prev 7D"}},"type":"object","required":["object_external_id","title","total_views","views_by_source","trend_7d","trend_prev_7d"],"title":"AdminObjectItem"},"AdminObjectList":{"properties":{"developer_slug":{"type":"string","title":"Developer Slug"},"period_days":{"type":"integer","title":"Period Days"},"objects":{"items":{"$ref":"#/components/schemas/AdminObjectItem"},"type":"array","title":"Objects"}},"type":"object","required":["developer_slug","period_days","objects"],"title":"AdminObjectList"},"AdminObjectListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"items":{"items":{"$ref":"#/components/schemas/AdminObjectOut"},"type":"array","title":"Items"}},"type":"object","required":["total","page","page_size","items"],"title":"AdminObjectListResponse"},"AdminObjectOut":{"properties":{"object_id":{"type":"string","title":"Object Id"},"developer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Id"},"external_id":{"type":"string","title":"External Id"},"title":{"type":"string","title":"Title"},"object_type":{"type":"string","title":"Object Type"},"status":{"type":"string","title":"Status"},"registration_open":{"type":"boolean","title":"Registration Open"},"object_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Url"},"manually_edited":{"type":"boolean","title":"Manually Edited"},"locked_fields":{"items":{"type":"string"},"type":"array","title":"Locked Fields"},"origin":{"type":"string","title":"Origin"},"canonical_object_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical Object Id"},"claim_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim External Id"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street"},"house":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"House"},"quarter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quarter"},"building":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Building"},"floor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Floor"},"total_floors":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Floors"},"area":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Area"},"rooms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rooms"},"price":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price"},"price_per_sqm":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Per Sqm"},"completion_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Completion Date"},"sales_start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Sales Start Date"},"registration_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Registration Start Date"},"offline_booking_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Offline Booking Date"},"registration_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Url"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"promotions":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Promotions"},"extra":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra"},"first_seen_at":{"type":"string","format":"date-time","title":"First Seen At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["object_id","developer_id","external_id","title","object_type","status","registration_open","object_url","manually_edited","locked_fields","origin","canonical_object_id","claim_external_id","first_seen_at","updated_at"],"title":"AdminObjectOut"},"AdminOut":{"properties":{"id":{"type":"string","title":"Id"},"telegram_chat_id":{"type":"integer","title":"Telegram Chat Id"},"telegram_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Username"},"telegram_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Name"},"created_by":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","telegram_chat_id","telegram_username","telegram_name","created_by","created_at"],"title":"AdminOut"},"AdminReviewListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"items":{"items":{"$ref":"#/components/schemas/src__api__routers__admin__service_reviews__AdminReviewOut"},"type":"array","title":"Items"}},"type":"object","required":["total","page","page_size","items"],"title":"AdminReviewListResponse"},"AdminServiceDetail":{"properties":{"service_id":{"type":"string","title":"Service Id"},"name":{"type":"string","title":"Name"},"period_days":{"type":"integer","title":"Period Days"},"total_views":{"type":"integer","title":"Total Views"},"clicks_total":{"type":"integer","title":"Clicks Total"},"conversion_rate":{"type":"number","title":"Conversion Rate"},"daily":{"items":{"$ref":"#/components/schemas/DailyServiceEntry"},"type":"array","title":"Daily"}},"type":"object","required":["service_id","name","period_days","total_views","clicks_total","conversion_rate","daily"],"title":"AdminServiceDetail"},"AdminServiceItem":{"properties":{"service_id":{"type":"string","title":"Service Id"},"name":{"type":"string","title":"Name"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"total_views":{"type":"integer","title":"Total Views"},"views_by_source":{"additionalProperties":{"type":"integer"},"type":"object","title":"Views By Source"},"trend_7d":{"type":"integer","title":"Trend 7D"},"trend_prev_7d":{"type":"integer","title":"Trend Prev 7D"},"trend_delta_pct":{"type":"number","title":"Trend Delta Pct"},"clicks_total":{"type":"integer","title":"Clicks Total"}},"type":"object","required":["service_id","name","categories","total_views","views_by_source","trend_7d","trend_prev_7d","trend_delta_pct","clicks_total"],"title":"AdminServiceItem"},"AdminServiceList":{"properties":{"period_days":{"type":"integer","title":"Period Days"},"services":{"items":{"$ref":"#/components/schemas/AdminServiceItem"},"type":"array","title":"Services"}},"type":"object","required":["period_days","services"],"title":"AdminServiceList"},"AnalyticsFunnel":{"properties":{"period_days":{"type":"integer","title":"Period Days"},"page_views":{"type":"integer","title":"Page Views"},"object_views":{"type":"integer","title":"Object Views"},"clicks_card":{"type":"integer","title":"Clicks Card"},"clicks_telegram":{"type":"integer","title":"Clicks Telegram"},"total_subscribers":{"type":"integer","title":"Total Subscribers"}},"type":"object","required":["period_days","page_views","object_views","clicks_card","clicks_telegram","total_subscribers"],"title":"AnalyticsFunnel","description":"Conversion funnel: page_views → object_views → clicks → subscribers."},"AnalyticsHealth":{"properties":{"period_days":{"type":"integer","title":"Period Days"},"bot_ratio":{"type":"number","title":"Bot Ratio"},"stale_developers":{"items":{"$ref":"#/components/schemas/StaleDeveloperItem"},"type":"array","title":"Stale Developers"},"dead_objects":{"items":{"$ref":"#/components/schemas/DeadObjectItem"},"type":"array","title":"Dead Objects"},"error_events_count":{"type":"integer","title":"Error Events Count"},"deactivated_redirects_last_period":{"type":"integer","title":"Deactivated Redirects Last Period"},"developers_in_error":{"type":"integer","title":"Developers In Error"},"traffic_delta_pct":{"type":"number","title":"Traffic Delta Pct"},"api_hits_delta_pct":{"type":"number","title":"Api Hits Delta Pct"},"dead_services":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Dead Services","default":[]},"top_services_no_clicks":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Top Services No Clicks","default":[]}},"type":"object","required":["period_days","bot_ratio","stale_developers","dead_objects","error_events_count","deactivated_redirects_last_period","developers_in_error","traffic_delta_pct","api_hits_delta_pct"],"title":"AnalyticsHealth"},"AnalyticsSummary":{"properties":{"period_days":{"type":"integer","title":"Period Days"},"total_subscribers":{"type":"integer","title":"Total Subscribers"},"page_views":{"$ref":"#/components/schemas/DeltaPair"},"api_hits":{"$ref":"#/components/schemas/DeltaPair"},"unique_api_consumers":{"$ref":"#/components/schemas/DeltaPair"},"clicks":{"$ref":"#/components/schemas/DeltaPair"},"events":{"$ref":"#/components/schemas/DeltaPair"},"ua_breakdown":{"$ref":"#/components/schemas/UaBreakdown"}},"type":"object","required":["period_days","total_subscribers","page_views","api_hits","unique_api_consumers","clicks","events","ua_breakdown"],"title":"AnalyticsSummary"},"AnalyticsTrends":{"properties":{"period_days":{"type":"integer","title":"Period Days"},"horizon_days":{"type":"integer","title":"Horizon Days"},"metrics":{"items":{"$ref":"#/components/schemas/MetricTrend"},"type":"array","title":"Metrics"}},"type":"object","required":["period_days","horizon_days","metrics"],"title":"AnalyticsTrends"},"ApiClientBreakdown":{"properties":{"period_days":{"type":"integer","title":"Period Days"},"web":{"$ref":"#/components/schemas/ApiClientTypeStats"},"pwa":{"$ref":"#/components/schemas/ApiClientTypeStats"},"external":{"$ref":"#/components/schemas/ApiClientTypeStats"}},"type":"object","required":["period_days","web","pwa","external"],"title":"ApiClientBreakdown","description":"Breakdown of API token holders by client type."},"ApiClientTypeStats":{"properties":{"token_count":{"type":"integer","title":"Token Count"},"active_tokens":{"type":"integer","title":"Active Tokens"}},"type":"object","required":["token_count","active_tokens"],"title":"ApiClientTypeStats"},"ApiTokenOut":{"properties":{"id":{"type":"string","title":"Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"request_count":{"type":"integer","title":"Request Count"}},"type":"object","required":["id","label","created_at","last_used_at","request_count"],"title":"ApiTokenOut"},"AppEventDimensionItem":{"properties":{"dimension":{"type":"string","title":"Dimension"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["dimension","count"],"title":"AppEventDimensionItem"},"AppEventItem":{"properties":{"event_name":{"type":"string","title":"Event Name"},"total":{"type":"integer","title":"Total"},"dimensions":{"items":{"$ref":"#/components/schemas/AppEventDimensionItem"},"type":"array","title":"Dimensions"}},"type":"object","required":["event_name","total","dimensions"],"title":"AppEventItem"},"AppEventsBreakdown":{"properties":{"period_days":{"type":"integer","title":"Period Days"},"total":{"type":"integer","title":"Total"},"events":{"items":{"$ref":"#/components/schemas/AppEventItem"},"type":"array","title":"Events"}},"type":"object","required":["period_days","total","events"],"title":"AppEventsBreakdown"},"AppleAuthPayload":{"properties":{"identityToken":{"type":"string","title":"Identitytoken"},"persona":{"type":"string","title":"Persona"},"fullName":{"anyOf":[{"$ref":"#/components/schemas/AppleFullName"},{"type":"null"}]}},"type":"object","required":["identityToken","persona"],"title":"AppleAuthPayload"},"AppleFullName":{"properties":{"givenName":{"type":"string","title":"Givenname"},"familyName":{"type":"string","title":"Familyname"}},"type":"object","required":["givenName","familyName"],"title":"AppleFullName"},"AttachTeamRequest":{"properties":{"team_id":{"type":"string","title":"Team Id"}},"type":"object","required":["team_id"],"title":"AttachTeamRequest"},"AttachedProjectOut":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"}},"type":"object","required":["id","title"],"title":"AttachedProjectOut"},"AttributionCreate":{"properties":{"developer_id":{"type":"string","title":"Developer Id"},"role":{"type":"string","title":"Role"},"priority":{"type":"integer","title":"Priority","default":0}},"type":"object","required":["developer_id","role"],"title":"AttributionCreate"},"AttributionOut":{"properties":{"id":{"type":"string","title":"Id"},"object_id":{"type":"string","title":"Object Id"},"developer_id":{"type":"string","title":"Developer Id"},"developer_slug":{"type":"string","title":"Developer Slug"},"developer_name":{"type":"string","title":"Developer Name"},"role":{"type":"string","title":"Role"},"priority":{"type":"integer","title":"Priority"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","object_id","developer_id","developer_slug","developer_name","role","priority","created_at"],"title":"AttributionOut"},"AttributionUpdate":{"properties":{"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"priority":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Priority"}},"type":"object","title":"AttributionUpdate"},"AuthResponse":{"properties":{"token":{"type":"string","title":"Token"},"persona":{"type":"string","title":"Persona"},"deletion_cancelled":{"type":"boolean","title":"Deletion Cancelled","default":false},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"}},"type":"object","required":["token","persona"],"title":"AuthResponse"},"BallotIn":{"properties":{"choice":{"type":"string","title":"Choice"}},"type":"object","required":["choice"],"title":"BallotIn"},"BotCodeStoreRequest":{"properties":{"chat_id":{"type":"integer","title":"Chat Id"},"code":{"type":"string","title":"Code"}},"type":"object","required":["chat_id","code"],"title":"BotCodeStoreRequest"},"BotCodeVerifyRequest":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"BotCodeVerifyRequest"},"BudgetBenchmarkOut":{"properties":{"category":{"type":"string","title":"Category"},"currency":{"type":"string","title":"Currency"},"p25_per_m2":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"P25 Per M2"},"p50_per_m2":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"P50 Per M2"},"p75_per_m2":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"P75 Per M2"},"sample_size":{"type":"integer","title":"Sample Size"},"segment":{"type":"string","title":"Segment"}},"type":"object","required":["category","currency","p25_per_m2","p50_per_m2","p75_per_m2","sample_size","segment"],"title":"BudgetBenchmarkOut"},"BudgetItemCreate":{"properties":{"category":{"type":"string","title":"Category"},"title":{"type":"string","title":"Title"},"planned_amount":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Planned Amount"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"sort_order":{"type":"integer","title":"Sort Order","default":0},"source":{"anyOf":[{"type":"string","const":"estimate"},{"type":"null"}],"title":"Source"}},"type":"object","required":["category","title","planned_amount"],"title":"BudgetItemCreate"},"BudgetItemOut":{"properties":{"id":{"type":"string","title":"Id"},"category":{"type":"string","title":"Category"},"title":{"type":"string","title":"Title"},"planned_amount":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Planned Amount"},"actual_total":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Actual Total"},"currency":{"type":"string","title":"Currency"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"sort_order":{"type":"integer","title":"Sort Order"},"expenses":{"items":{"$ref":"#/components/schemas/ExpenseOut"},"type":"array","title":"Expenses"}},"type":"object","required":["id","category","title","planned_amount","actual_total","currency","comment","sort_order","expenses"],"title":"BudgetItemOut"},"BudgetItemUpdate":{"properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"planned_amount":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Planned Amount"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"}},"type":"object","title":"BudgetItemUpdate"},"BudgetSummary":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BudgetItemOut"},"type":"array","title":"Items"},"object_price":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Object Price"},"extras_total":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Extras Total"},"grand_total":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Grand Total"},"budget_limit":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Budget Limit"},"actual_total":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Actual Total"},"remaining":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Remaining"},"percent_used":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percent Used"},"by_category":{"items":{"$ref":"#/components/schemas/CategoryShare"},"type":"array","title":"By Category"}},"type":"object","required":["items","object_price","extras_total","grand_total","budget_limit","actual_total","remaining","percent_used","by_category"],"title":"BudgetSummary"},"BudgetTemplateOut":{"properties":{"id":{"type":"string","title":"Id"},"category":{"type":"string","title":"Category"},"title":{"type":"string","title":"Title"},"unit":{"type":"string","title":"Unit"},"unit_price":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Unit Price"},"currency":{"type":"string","title":"Currency"}},"type":"object","required":["id","category","title","unit","unit_price","currency"],"title":"BudgetTemplateOut"},"BulkImportResult":{"properties":{"index":{"type":"integer","title":"Index"},"status":{"type":"string","enum":["created","overwritten","updated","skipped","error"],"title":"Status"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"}},"type":"object","required":["index","status"],"title":"BulkImportResult"},"BulkRequest":{"properties":{"selection":{"$ref":"#/components/schemas/BulkSelection"},"action":{"type":"string","title":"Action"},"value":{"type":"string","title":"Value","default":""},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","required":["selection","action"],"title":"BulkRequest"},"BulkResult":{"properties":{"matched":{"type":"integer","title":"Matched"},"changed":{"type":"integer","title":"Changed"},"skipped":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Skipped"},"dry_run":{"type":"boolean","title":"Dry Run"}},"type":"object","required":["matched","changed","skipped","dry_run"],"title":"BulkResult"},"BulkSelection":{"properties":{"ids":{"items":{"type":"string"},"type":"array","title":"Ids","default":[]},"q":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tag"},"claimed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Claimed"},"missing":{"items":{"type":"string"},"type":"array","title":"Missing","default":[]},"deleted":{"type":"boolean","title":"Deleted","default":false},"all_matching":{"type":"boolean","title":"All Matching","default":false}},"type":"object","title":"BulkSelection","description":"Что именно правим: явный список id или всё, что попало под фильтр."},"BusinessLeadOut":{"properties":{"id":{"type":"string","title":"Id"},"service_provider_id":{"type":"string","title":"Service Provider Id"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"role_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Label"},"status":{"type":"string","title":"Status"},"object_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Title"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District"},"area_m2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Area M2"},"total_price":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Total Price"},"budget_total":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Budget Total"},"currency":{"type":"string","title":"Currency"},"user_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Comment"},"contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Name"},"contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Phone"},"contact_telegram":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Telegram"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"viewed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Viewed At"}},"type":"object","required":["id","service_provider_id","project_id","role_label","status","object_title","city","district","area_m2","total_price","budget_total","currency","user_comment","contact_name","contact_phone","contact_telegram","created_at","viewed_at"],"title":"BusinessLeadOut"},"BusinessLeadPatch":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"BusinessLeadPatch"},"BuyerProjectFunnel":{"properties":{"created":{"type":"integer","title":"Created"},"populated":{"type":"integer","title":"Populated"},"lead_created":{"type":"integer","title":"Lead Created"}},"type":"object","required":["created","populated","lead_created"],"title":"BuyerProjectFunnel"},"BuyerProjectMetrics":{"properties":{"period_days":{"type":"integer","title":"Period Days"},"weekly":{"items":{"$ref":"#/components/schemas/BuyerProjectWeeklyPoint"},"type":"array","title":"Weekly"},"funnel":{"$ref":"#/components/schemas/BuyerProjectFunnel"},"retention":{"$ref":"#/components/schemas/BuyerProjectRetention"}},"type":"object","required":["period_days","weekly","funnel","retention"],"title":"BuyerProjectMetrics"},"BuyerProjectRetention":{"properties":{"eligible_d7":{"type":"integer","title":"Eligible D7"},"returned_d7":{"type":"integer","title":"Returned D7"},"retention_d7_pct":{"type":"number","title":"Retention D7 Pct"},"eligible_d30":{"type":"integer","title":"Eligible D30"},"returned_d30":{"type":"integer","title":"Returned D30"},"retention_d30_pct":{"type":"number","title":"Retention D30 Pct"}},"type":"object","required":["eligible_d7","returned_d7","retention_d7_pct","eligible_d30","returned_d30","retention_d30_pct"],"title":"BuyerProjectRetention"},"BuyerProjectWeeklyPoint":{"properties":{"week_start":{"type":"string","title":"Week Start"},"created":{"type":"integer","title":"Created"}},"type":"object","required":["week_start","created"],"title":"BuyerProjectWeeklyPoint"},"CalculateRequest":{"properties":{"selections":{"items":{"$ref":"#/components/schemas/MaterialSelectionIn"},"type":"array","minItems":1,"title":"Selections"}},"type":"object","required":["selections"],"title":"CalculateRequest"},"CalculationOut":{"properties":{"rooms":{"items":{"$ref":"#/components/schemas/RoomResultOut"},"type":"array","title":"Rooms"},"totals":{"items":{"$ref":"#/components/schemas/MaterialTotalOut"},"type":"array","title":"Totals"},"disclaimer":{"type":"string","title":"Disclaimer"}},"type":"object","required":["rooms","totals","disclaimer"],"title":"CalculationOut"},"CatalogCollections":{"properties":{"popular_objects":{"items":{"$ref":"#/components/schemas/PopularObjectEntry"},"type":"array","title":"Popular Objects"},"trending_objects":{"items":{"$ref":"#/components/schemas/TrendingObjectEntry"},"type":"array","title":"Trending Objects"},"new_objects":{"items":{"$ref":"#/components/schemas/ObjectItem"},"type":"array","title":"New Objects"},"popular_services":{"items":{"$ref":"#/components/schemas/PopularServiceEntry"},"type":"array","title":"Popular Services"}},"type":"object","required":["popular_objects","trending_objects","new_objects","popular_services"],"title":"CatalogCollections"},"CatalogItem":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"version":{"type":"string","title":"Version"},"permissions":{"items":{},"type":"array","title":"Permissions"},"platforms":{"items":{},"type":"array","title":"Platforms"},"revoked":{"type":"boolean","title":"Revoked"},"declaration_sha256":{"type":"string","title":"Declaration Sha256"},"fields":{"items":{},"type":"array","title":"Fields"},"worker_capabilities":{"items":{},"type":"array","title":"Worker Capabilities"},"trigger":{"additionalProperties":true,"type":"object","title":"Trigger"},"author":{"additionalProperties":true,"type":"object","title":"Author"},"category":{"type":"string","title":"Category","default":""},"tags":{"items":{},"type":"array","title":"Tags","default":[]},"rating_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating Avg"},"rating_count":{"type":"integer","title":"Rating Count","default":0},"install_count":{"type":"integer","title":"Install Count","default":0}},"type":"object","required":["slug","name","description","version","permissions","platforms","revoked","declaration_sha256","fields","worker_capabilities","trigger","author"],"title":"CatalogItem"},"CategoryBulkResult":{"properties":{"updated":{"type":"integer","title":"Updated"}},"type":"object","required":["updated"],"title":"CategoryBulkResult"},"CategoryImportCheckRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConflictCheckItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"CategoryImportCheckRequest"},"CategoryImportExecuteRequest":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/CategoryImportRow"},"type":"array","title":"Rows"}},"type":"object","required":["rows"],"title":"CategoryImportExecuteRequest"},"CategoryImportItem":{"properties":{"slug":{"type":"string","title":"Slug"},"label":{"type":"string","title":"Label"},"parent_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Slug"},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["slug","label"],"title":"CategoryImportItem"},"CategoryImportRow":{"properties":{"index":{"type":"integer","title":"Index"},"data":{"$ref":"#/components/schemas/CategoryImportItem"},"conflict_action":{"type":"string","enum":["overwrite","update","skip"],"title":"Conflict Action","default":"skip"},"field_mask":{"items":{"type":"string"},"type":"array","title":"Field Mask","default":[]}},"type":"object","required":["index","data"],"title":"CategoryImportRow"},"CategoryMergeRequest":{"properties":{"source":{"type":"string","title":"Source"},"target":{"type":"string","title":"Target"},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","required":["source","target"],"title":"CategoryMergeRequest"},"CategoryMergeResult":{"properties":{"matched":{"type":"integer","title":"Matched"},"children":{"type":"integer","title":"Children"},"dry_run":{"type":"boolean","title":"Dry Run"}},"type":"object","required":["matched","children","dry_run"],"title":"CategoryMergeResult","description":"Сводка в той же форме, что у массовых действий над услугами (#321)."},"CategoryOrderItem":{"properties":{"slug":{"type":"string","title":"Slug"},"sort_order":{"type":"integer","title":"Sort Order"}},"type":"object","required":["slug","sort_order"],"title":"CategoryOrderItem"},"CategoryOut":{"properties":{"value":{"type":"string","title":"Value"},"label":{"type":"string","title":"Label"}},"type":"object","required":["value","label"],"title":"CategoryOut"},"CategoryReorderRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CategoryOrderItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"CategoryReorderRequest"},"CategoryShare":{"properties":{"category":{"type":"string","title":"Category"},"planned_amount":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Planned Amount"},"actual_amount":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Actual Amount"}},"type":"object","required":["category","planned_amount","actual_amount"],"title":"CategoryShare"},"CategoryStatusBulk":{"properties":{"slugs":{"items":{"type":"string"},"type":"array","title":"Slugs"},"status":{"type":"string","enum":["pending","approved","rejected"],"title":"Status"}},"type":"object","required":["slugs","status"],"title":"CategoryStatusBulk"},"ChallengeOut":{"properties":{"challenge_id":{"type":"string","title":"Challenge Id"},"game_type":{"type":"string","title":"Game Type"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"attempts_left":{"type":"integer","title":"Attempts Left"}},"type":"object","required":["challenge_id","game_type","payload","expires_at","attempts_left"],"title":"ChallengeOut"},"ChallengeSolution":{"properties":{"solution":{"type":"string","title":"Solution"}},"type":"object","required":["solution"],"title":"ChallengeSolution"},"ChangedFieldItem":{"properties":{"field":{"type":"string","title":"Field"},"old":{"anyOf":[{},{"type":"null"}],"title":"Old"},"new":{"anyOf":[{},{"type":"null"}],"title":"New"}},"type":"object","required":["field"],"title":"ChangedFieldItem"},"ChartPoint":{"properties":{"date":{"type":"string","title":"Date"},"views":{"type":"integer","title":"Views"}},"type":"object","required":["date","views"],"title":"ChartPoint"},"CityOut":{"properties":{"name":{"type":"string","title":"Name"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"slug":{"type":"string","title":"Slug","default":""}},"type":"object","required":["name"],"title":"CityOut","description":"Пункт справочника населённых пунктов (#344)."},"ClaimBody":{"properties":{"service_provider_id":{"type":"string","title":"Service Provider Id"},"evidence_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Phone"},"evidence_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Url"},"evidence_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Email"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"type":"object","required":["service_provider_id"],"title":"ClaimBody"},"ClaimOut":{"properties":{"id":{"type":"string","title":"Id"},"developer_name":{"type":"string","title":"Developer Name"},"developer_slug":{"type":"string","title":"Developer Slug"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","developer_name","developer_slug","status","created_at"],"title":"ClaimOut"},"ClaimStatusResponse":{"properties":{"memberships":{"items":{"$ref":"#/components/schemas/MembershipOut"},"type":"array","title":"Memberships"},"claim_requests":{"items":{"$ref":"#/components/schemas/ClaimOut"},"type":"array","title":"Claim Requests"}},"type":"object","required":["memberships","claim_requests"],"title":"ClaimStatusResponse"},"ClaimSubmit":{"properties":{"developer_slug":{"type":"string","title":"Developer Slug"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"type":"object","required":["developer_slug"],"title":"ClaimSubmit"},"ClickBreakdownItem":{"properties":{"period_start":{"type":"string","format":"date-time","title":"Period Start"},"developer_slug":{"type":"string","title":"Developer Slug"},"source":{"type":"string","title":"Source"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["period_start","developer_slug","source","count"],"title":"ClickBreakdownItem"},"ConfigResponse":{"properties":{"bot_username":{"type":"string","title":"Bot Username"},"bot_id":{"type":"string","title":"Bot Id"},"apple_service_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apple Service Id"},"google_client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Google Client Id"}},"type":"object","required":["bot_username","bot_id"],"title":"ConfigResponse"},"ConflictCheckItem":{"properties":{"index":{"type":"integer","title":"Index"},"key":{"additionalProperties":true,"type":"object","title":"Key"}},"type":"object","required":["index","key"],"title":"ConflictCheckItem"},"ConflictStatus":{"properties":{"index":{"type":"integer","title":"Index"},"has_conflict":{"type":"boolean","title":"Has Conflict"},"existing_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Existing Id"}},"type":"object","required":["index","has_conflict"],"title":"ConflictStatus"},"CreateRedirectBody":{"properties":{"developer_slug":{"type":"string","title":"Developer Slug"},"destination_url":{"type":"string","title":"Destination Url"},"source":{"type":"string","title":"Source","default":"card"},"object_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object External Id"}},"type":"object","required":["developer_slug","destination_url"],"title":"CreateRedirectBody"},"CustomCategoryInput":{"properties":{"slug":{"type":"string","title":"Slug"},"label":{"type":"string","title":"Label"},"parent_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Slug"}},"type":"object","required":["slug","label"],"title":"CustomCategoryInput","description":"Public-submitted category metadata; slug also flows through `categories`."},"CustomCategoryOut":{"properties":{"slug":{"type":"string","title":"Slug"},"label":{"type":"string","title":"Label"},"parent_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Slug"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","required":["slug","label"],"title":"CustomCategoryOut","description":"Custom category returned in service responses."},"DailyServiceEntry":{"properties":{"date":{"type":"string","title":"Date"},"views":{"type":"integer","title":"Views"},"clicks":{"type":"integer","title":"Clicks"}},"type":"object","required":["date","views","clicks"],"title":"DailyServiceEntry"},"DailyViewEntry":{"properties":{"date":{"type":"string","title":"Date"},"views":{"type":"integer","title":"Views"},"source_breakdown":{"additionalProperties":{"type":"integer"},"type":"object","title":"Source Breakdown"}},"type":"object","required":["date","views","source_breakdown"],"title":"DailyViewEntry"},"DeadObjectItem":{"properties":{"developer_slug":{"type":"string","title":"Developer Slug"},"object_external_id":{"type":"string","title":"Object External Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"days_in_catalog":{"type":"integer","title":"Days In Catalog"}},"type":"object","required":["developer_slug","object_external_id","title","days_in_catalog"],"title":"DeadObjectItem"},"DeclarationOut":{"properties":{"version":{"type":"string","title":"Version"},"declaration_json":{"type":"string","title":"Declaration Json"},"declaration_sha256":{"type":"string","title":"Declaration Sha256"}},"type":"object","required":["version","declaration_json","declaration_sha256"],"title":"DeclarationOut"},"DeltaPair":{"properties":{"value":{"type":"integer","title":"Value"},"previous":{"type":"integer","title":"Previous"},"delta_pct":{"type":"number","title":"Delta Pct"}},"type":"object","required":["value","previous","delta_pct"],"title":"DeltaPair","description":"Value with period-over-period delta. delta_pct is signed (может быть < 0)."},"DeveloperAdapterCreate":{"properties":{"name":{"type":"string","title":"Name"},"source_category":{"type":"string","title":"Source Category","default":"web_html"},"adapter_type":{"type":"string","title":"Adapter Type","default":"configurable"},"custom_adapter_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Adapter Slug"},"is_enabled":{"type":"boolean","title":"Is Enabled","default":true},"use_playwright":{"type":"boolean","title":"Use Playwright","default":false},"retry_count":{"type":"integer","title":"Retry Count","default":3},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds","default":30},"retry_backoff_multiplier":{"type":"number","title":"Retry Backoff Multiplier","default":2.0},"config":{"additionalProperties":true,"type":"object","title":"Config","default":{}}},"type":"object","required":["name"],"title":"DeveloperAdapterCreate"},"DeveloperAnalyticsItem":{"properties":{"developer_slug":{"type":"string","title":"Developer Slug"},"page_views":{"type":"integer","title":"Page Views"},"clicks_card":{"type":"integer","title":"Clicks Card"},"clicks_telegram":{"type":"integer","title":"Clicks Telegram"},"object_views_total":{"type":"integer","title":"Object Views Total"},"subscribers":{"type":"integer","title":"Subscribers"},"is_stale":{"type":"boolean","title":"Is Stale"}},"type":"object","required":["developer_slug","page_views","clicks_card","clicks_telegram","object_views_total","subscribers","is_stale"],"title":"DeveloperAnalyticsItem"},"DeveloperChannelItem":{"properties":{"id":{"type":"string","title":"Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"type":{"type":"string","title":"Type"},"visibility":{"type":"string","title":"Visibility"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"member_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Member Count"}},"type":"object","required":["id","title","type","visibility","username","url"],"title":"DeveloperChannelItem"},"DeveloperCreate":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"website":{"type":"string","title":"Website"},"currency":{"type":"string","title":"Currency","default":"BYN"},"telegram_channel_visibility":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Channel Visibility"},"telegram_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Channel Id"},"telegram_channel_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Channel Username"},"telegram_channel_invite_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Channel Invite Link"},"objects_check_interval_seconds":{"type":"integer","title":"Objects Check Interval Seconds","default":1800},"objects_check_cron":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Objects Check Cron"},"registration_enabled":{"type":"boolean","title":"Registration Enabled","default":true},"registration_check_interval_ms":{"type":"integer","title":"Registration Check Interval Ms","default":5000},"registration_check_cron":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Check Cron"},"source_timezone":{"type":"string","title":"Source Timezone","default":"UTC"},"title_parse_enabled":{"type":"boolean","title":"Title Parse Enabled","default":false},"default_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default City"},"default_district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default District"}},"type":"object","required":["slug","name","website"],"title":"DeveloperCreate"},"DeveloperHealth":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"status":{"type":"string","title":"Status"},"last_objects_check_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Objects Check At"},"last_registration_check_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Registration Check At"},"consecutive_errors":{"type":"integer","title":"Consecutive Errors"}},"type":"object","required":["id","name","status","last_objects_check_at","last_registration_check_at","consecutive_errors"],"title":"DeveloperHealth"},"DeveloperImportCheckRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConflictCheckItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"DeveloperImportCheckRequest"},"DeveloperImportExecuteRequest":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/DeveloperImportRow"},"type":"array","title":"Rows"}},"type":"object","required":["rows"],"title":"DeveloperImportExecuteRequest"},"DeveloperImportItem":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"website":{"type":"string","title":"Website","default":""},"default_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default City"},"default_district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default District"},"objects_check_interval_seconds":{"type":"integer","title":"Objects Check Interval Seconds","default":1800},"title_parse_enabled":{"type":"boolean","title":"Title Parse Enabled","default":false},"source_timezone":{"type":"string","title":"Source Timezone","default":"UTC"}},"type":"object","required":["slug","name"],"title":"DeveloperImportItem"},"DeveloperImportRow":{"properties":{"index":{"type":"integer","title":"Index"},"data":{"$ref":"#/components/schemas/DeveloperImportItem"},"conflict_action":{"type":"string","enum":["overwrite","update","skip"],"title":"Conflict Action","default":"skip"},"field_mask":{"items":{"type":"string"},"type":"array","title":"Field Mask","default":[]}},"type":"object","required":["index","data"],"title":"DeveloperImportRow"},"DeveloperItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"website":{"type":"string","title":"Website"},"telegram_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Channel"},"active":{"type":"boolean","title":"Active"},"registration_enabled":{"type":"boolean","title":"Registration Enabled"},"objects_count":{"type":"integer","title":"Objects Count"},"last_check_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Check At"}},"type":"object","required":["id","name","website","telegram_channel","active","registration_enabled","objects_count","last_check_at"],"title":"DeveloperItem"},"DeveloperOut":{"properties":{"id":{"type":"string","title":"Id"},"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"website":{"type":"string","title":"Website"},"currency":{"type":"string","title":"Currency"},"status":{"type":"string","title":"Status"},"telegram_channel_visibility":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Channel Visibility"},"telegram_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Channel Id"},"telegram_channel_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Channel Username"},"telegram_channel_invite_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Channel Invite Link"},"objects_check_interval_seconds":{"type":"integer","title":"Objects Check Interval Seconds"},"objects_check_cron":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Objects Check Cron"},"registration_enabled":{"type":"boolean","title":"Registration Enabled"},"registration_check_interval_ms":{"type":"integer","title":"Registration Check Interval Ms"},"registration_check_cron":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Check Cron"},"source_timezone":{"type":"string","title":"Source Timezone"},"title_parse_enabled":{"type":"boolean","title":"Title Parse Enabled"},"default_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default City"},"default_district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default District"},"default_sort_config":{"anyOf":[{"items":{"$ref":"#/components/schemas/SortField"},"type":"array"},{"type":"null"}],"title":"Default Sort Config"},"consecutive_errors":{"type":"integer","title":"Consecutive Errors"},"last_objects_check_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Objects Check At"},"last_registration_check_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Registration Check At"},"archived_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archived At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","slug","name","website","currency","status","telegram_channel_visibility","telegram_channel_id","telegram_channel_username","telegram_channel_invite_link","objects_check_interval_seconds","objects_check_cron","registration_enabled","registration_check_interval_ms","registration_check_cron","source_timezone","title_parse_enabled","default_city","default_district","default_sort_config","consecutive_errors","last_objects_check_at","last_registration_check_at","archived_at","created_at","updated_at"],"title":"DeveloperOut"},"DeveloperPublicStats":{"properties":{"developer_slug":{"type":"string","title":"Developer Slug"},"period_days":{"type":"integer","title":"Period Days"},"page_views":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page Views"},"object_views_top":{"anyOf":[{"items":{"$ref":"#/components/schemas/ObjectViewItem"},"type":"array"},{"type":"null"}],"title":"Object Views Top"},"clicks_to_developer":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Clicks To Developer"},"events_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Events Count"},"subscribers_approx":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subscribers Approx"}},"type":"object","required":["developer_slug","period_days"],"title":"DeveloperPublicStats"},"DeveloperStats":{"properties":{"developer_id":{"type":"string","title":"Developer Id"},"developer_name":{"type":"string","title":"Developer Name"},"objects_total":{"type":"integer","title":"Objects Total"},"objects_for_sale":{"type":"integer","title":"Objects For Sale"},"objects_registration_open":{"type":"integer","title":"Objects Registration Open"}},"type":"object","required":["developer_id","developer_name","objects_total","objects_for_sale","objects_registration_open"],"title":"DeveloperStats"},"DeveloperUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"telegram_channel_visibility":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Channel Visibility"},"telegram_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Channel Id"},"telegram_channel_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Channel Username"},"telegram_channel_invite_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telegram Channel Invite Link"},"objects_check_interval_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Objects Check Interval Seconds"},"objects_check_cron":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Objects Check Cron"},"registration_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Registration Enabled"},"registration_check_interval_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Registration Check Interval Ms"},"registration_check_cron":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Check Cron"},"source_timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Timezone"},"title_parse_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Title Parse Enabled"},"default_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default City"},"default_district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default District"},"default_sort_config":{"anyOf":[{"items":{"$ref":"#/components/schemas/SortField"},"type":"array"},{"type":"null"}],"title":"Default Sort Config"}},"type":"object","title":"DeveloperUpdate"},"DuplicateAdapterRequest":{"properties":{"target_developer_id":{"type":"string","format":"uuid","title":"Target Developer Id"}},"type":"object","required":["target_developer_id"],"title":"DuplicateAdapterRequest"},"EstimateCreate":{"properties":{"title":{"type":"string","title":"Title","default":"Расчёт материалов"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},"type":"object","title":"EstimateCreate"},"EstimateOut":{"properties":{"id":{"type":"string","title":"Id"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"title":{"type":"string","title":"Title"},"rooms":{"items":{"$ref":"#/components/schemas/RoomOut"},"type":"array","title":"Rooms"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","project_id","title","rooms","created_at","updated_at"],"title":"EstimateOut"},"EstimateUpdate":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"type":"object","title":"EstimateUpdate"},"EventActivityPoint":{"properties":{"date":{"type":"string","title":"Date"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["date","count"],"title":"EventActivityPoint"},"EventItem":{"properties":{"id":{"type":"string","title":"Id"},"developer_id":{"type":"string","title":"Developer Id"},"object_external_id":{"type":"string","title":"Object External Id"},"object_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Title"},"event_type":{"type":"string","title":"Event Type"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"changed_fields":{"anyOf":[{"items":{"$ref":"#/components/schemas/ChangedFieldItem"},"type":"array"},{"type":"null"}],"title":"Changed Fields"},"human_readable_changes":{"anyOf":[{"items":{"$ref":"#/components/schemas/HumanReadableChangeItem"},"type":"array"},{"type":"null"}],"title":"Human Readable Changes"}},"type":"object","required":["id","developer_id","object_external_id","event_type","occurred_at"],"title":"EventItem"},"EventListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"items":{"items":{"$ref":"#/components/schemas/EventItem"},"type":"array","title":"Items"}},"type":"object","required":["total","page","page_size","items"],"title":"EventListResponse"},"ExpenseCreate":{"properties":{"amount":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Amount"},"spent_at":{"type":"string","format":"date","title":"Spent At"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"type":"object","required":["amount","spent_at"],"title":"ExpenseCreate"},"ExpenseOut":{"properties":{"id":{"type":"string","title":"Id"},"amount":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Amount"},"spent_at":{"type":"string","title":"Spent At"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"type":"object","required":["id","amount","spent_at","comment"],"title":"ExpenseOut"},"ExpenseUpdate":{"properties":{"amount":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Amount"},"spent_at":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Spent At"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"type":"object","title":"ExpenseUpdate"},"ExportAdapterItem":{"properties":{"name":{"type":"string","title":"Name"},"adapter_type":{"type":"string","title":"Adapter Type","default":"configurable"},"source_category":{"type":"string","title":"Source Category"},"custom_adapter_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Adapter Slug"},"config":{"additionalProperties":true,"type":"object","title":"Config","default":{}},"python_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Python Source"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"use_playwright":{"type":"boolean","title":"Use Playwright"},"retry_count":{"type":"integer","title":"Retry Count"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"retry_backoff_multiplier":{"type":"number","title":"Retry Backoff Multiplier"},"pages":{"items":{"$ref":"#/components/schemas/ExportPageItem"},"type":"array","title":"Pages","default":[]}},"type":"object","required":["name","source_category","is_enabled","use_playwright","retry_count","retry_delay_seconds","retry_backoff_multiplier"],"title":"ExportAdapterItem"},"ExportMappingItem":{"properties":{"object_field":{"type":"string","title":"Object Field"},"selector":{"type":"string","title":"Selector"},"selector_type":{"type":"string","title":"Selector Type"},"attribute":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribute"},"extract_mode":{"type":"string","title":"Extract Mode"},"extract_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extract Template"},"extract_regex":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extract Regex"},"is_identifier":{"type":"boolean","title":"Is Identifier"},"is_list":{"type":"boolean","title":"Is List"},"list_item_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"List Item Selector"},"value_prefix":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Value Prefix"},"value_suffix":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Value Suffix"}},"type":"object","required":["object_field","selector","selector_type","attribute","extract_mode","extract_template","extract_regex","is_identifier","is_list","list_item_selector"],"title":"ExportMappingItem"},"ExportPageItem":{"properties":{"page_type":{"type":"string","title":"Page Type"},"url_template":{"type":"string","title":"Url Template"},"is_paginated":{"type":"boolean","title":"Is Paginated"},"pagination_start":{"type":"integer","title":"Pagination Start"},"pagination_max":{"type":"integer","title":"Pagination Max"},"wait_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wait Selector"},"wait_timeout_ms":{"type":"integer","title":"Wait Timeout Ms"},"dismiss_selectors":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Dismiss Selectors"},"sort_order":{"type":"integer","title":"Sort Order"},"parent_page_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Page Index"},"link_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Selector"},"link_attribute":{"type":"string","title":"Link Attribute"},"mappings":{"items":{"$ref":"#/components/schemas/ExportMappingItem"},"type":"array","title":"Mappings"}},"type":"object","required":["page_type","url_template","is_paginated","pagination_start","pagination_max","wait_selector","wait_timeout_ms","dismiss_selectors","sort_order","parent_page_index","link_selector","link_attribute","mappings"],"title":"ExportPageItem"},"FavoriteServiceCreate":{"properties":{"service_provider_id":{"type":"string","title":"Service Provider Id"}},"type":"object","required":["service_provider_id"],"title":"FavoriteServiceCreate"},"FavoriteServiceOut":{"properties":{"id":{"type":"string","title":"Id"},"service_provider_id":{"type":"string","title":"Service Provider Id"},"name":{"type":"string","title":"Name"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","service_provider_id","name","created_at"],"title":"FavoriteServiceOut"},"FieldConfigImportCheckRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConflictCheckItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"FieldConfigImportCheckRequest"},"FieldConfigImportExecuteRequest":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/FieldConfigImportRow"},"type":"array","title":"Rows"}},"type":"object","required":["rows"],"title":"FieldConfigImportExecuteRequest"},"FieldConfigImportItem":{"properties":{"field_name":{"type":"string","title":"Field Name"},"alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"value_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value Kind"},"empty_policy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Empty Policy"},"public_value_visibility":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Value Visibility"},"appeared_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appeared Template"},"removed_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Removed Template"},"changed_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Changed Template"}},"type":"object","required":["field_name"],"title":"FieldConfigImportItem"},"FieldConfigImportRow":{"properties":{"index":{"type":"integer","title":"Index"},"data":{"$ref":"#/components/schemas/FieldConfigImportItem"},"conflict_action":{"type":"string","enum":["overwrite","update","skip"],"title":"Conflict Action","default":"skip"},"field_mask":{"items":{"type":"string"},"type":"array","title":"Field Mask","default":[]}},"type":"object","required":["index","data"],"title":"FieldConfigImportRow"},"FieldConfigOut":{"properties":{"field_name":{"type":"string","title":"Field Name"},"alias":{"type":"string","title":"Alias"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"value_kind":{"type":"string","title":"Value Kind"},"empty_policy":{"type":"string","title":"Empty Policy"},"public_value_visibility":{"type":"string","title":"Public Value Visibility"},"appeared_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appeared Template"},"removed_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Removed Template"},"changed_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Changed Template"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["field_name","alias","value_kind","empty_policy","public_value_visibility","updated_at"],"title":"FieldConfigOut"},"FieldConfigPatch":{"properties":{"alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"value_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value Kind"},"empty_policy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Empty Policy"},"public_value_visibility":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Value Visibility"},"appeared_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appeared Template"},"removed_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Removed Template"},"changed_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Changed Template"}},"type":"object","title":"FieldConfigPatch"},"FieldMappingOut":{"properties":{"id":{"type":"string","title":"Id"},"page_id":{"type":"string","title":"Page Id"},"object_field":{"type":"string","title":"Object Field"},"selector":{"type":"string","title":"Selector"},"selector_type":{"type":"string","title":"Selector Type"},"attribute":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribute"},"extract_mode":{"type":"string","title":"Extract Mode"},"extract_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extract Template"},"extract_regex":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extract Regex"},"is_identifier":{"type":"boolean","title":"Is Identifier"},"is_list":{"type":"boolean","title":"Is List"},"list_item_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"List Item Selector"},"value_prefix":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Value Prefix"},"value_suffix":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Value Suffix"},"created_at":{"title":"Created At"},"updated_at":{"title":"Updated At"}},"type":"object","required":["id","page_id","object_field","selector","selector_type","attribute","extract_mode","extract_template","extract_regex","is_identifier","is_list","list_item_selector","value_prefix","value_suffix","created_at","updated_at"],"title":"FieldMappingOut"},"FieldSuggestionOut":{"properties":{"id":{"type":"string","title":"Id"},"object_id":{"type":"string","title":"Object Id"},"external_id":{"type":"string","title":"External Id"},"object_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Title"},"field_name":{"type":"string","title":"Field Name"},"current_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Value"},"suggested_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suggested Value"},"status":{"type":"string","title":"Status"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","object_id","external_id","object_title","field_name","current_value","suggested_value","status","updated_at"],"title":"FieldSuggestionOut"},"ForceResetOptions":{"properties":{"clear_cache":{"type":"boolean","title":"Clear Cache","default":false},"clear_objects":{"type":"boolean","title":"Clear Objects","default":false},"clear_events":{"type":"boolean","title":"Clear Events","default":false}},"type":"object","title":"ForceResetOptions"},"ForceResetResult":{"properties":{"actions":{"items":{"type":"string"},"type":"array","title":"Actions"}},"type":"object","required":["actions"],"title":"ForceResetResult"},"FunnelOut":{"properties":{"total":{"type":"integer","title":"Total"},"by_status":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Status"},"conversion_rate":{"type":"number","title":"Conversion Rate"},"avg_response_hours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Response Hours"}},"type":"object","required":["total","by_status","conversion_rate","avg_response_hours"],"title":"FunnelOut"},"GoogleOidcPayload":{"properties":{"code":{"type":"string","title":"Code"},"code_verifier":{"type":"string","title":"Code Verifier"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"persona":{"type":"string","title":"Persona"}},"type":"object","required":["code","code_verifier","redirect_uri","persona"],"title":"GoogleOidcPayload"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status"},"version":{"type":"string","title":"Version"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"developers":{"items":{"$ref":"#/components/schemas/DeveloperHealth"},"type":"array","title":"Developers"}},"type":"object","required":["status","version","timestamp","developers"],"title":"HealthResponse"},"HideRequest":{"properties":{"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","title":"HideRequest"},"HistoryChange":{"properties":{"field":{"type":"string","title":"Field"},"old":{"title":"Old"},"new":{"title":"New"}},"type":"object","required":["field","old","new"],"title":"HistoryChange"},"HistoryEntry":{"properties":{"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"event_type":{"type":"string","title":"Event Type"},"changes":{"items":{"$ref":"#/components/schemas/HistoryChange"},"type":"array","title":"Changes"}},"type":"object","required":["occurred_at","event_type","changes"],"title":"HistoryEntry"},"HistorySource":{"properties":{"developer_slug":{"type":"string","title":"Developer Slug"},"external_id":{"type":"string","title":"External Id"}},"type":"object","required":["developer_slug","external_id"],"title":"HistorySource"},"HtmlSampleItem":{"properties":{"page_index":{"type":"integer","title":"Page Index"},"url":{"type":"string","title":"Url"},"list_item_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"List Item Selector"},"samples":{"items":{"type":"string"},"type":"array","title":"Samples"}},"type":"object","required":["page_index","url","list_item_selector","samples"],"title":"HtmlSampleItem"},"HumanReadableChangeItem":{"properties":{"field":{"type":"string","title":"Field"},"kind":{"type":"string","title":"Kind"},"compact_text":{"type":"string","title":"Compact Text"},"full_text":{"type":"string","title":"Full Text"},"old_value_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Value Text"},"new_value_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"New Value Text"}},"type":"object","required":["field","kind","compact_text","full_text"],"title":"HumanReadableChangeItem"},"InviteCreate":{"properties":{"role":{"type":"string","title":"Role"}},"type":"object","required":["role"],"title":"InviteCreate"},"InviteFunnel":{"properties":{"period_days":{"type":"integer","title":"Period Days"},"sent":{"type":"integer","title":"Sent"},"accepted":{"type":"integer","title":"Accepted"},"profile_created":{"type":"integer","title":"Profile Created"},"profile_activated":{"type":"integer","title":"Profile Activated"}},"type":"object","required":["period_days","sent","accepted","profile_created","profile_activated"],"title":"InviteFunnel"},"InviteOut":{"properties":{"id":{"type":"string","title":"Id"},"role":{"type":"string","title":"Role"},"token":{"type":"string","title":"Token"},"invite_url":{"type":"string","title":"Invite Url"},"status":{"type":"string","title":"Status"},"expires_at":{"type":"string","title":"Expires At"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","role","token","invite_url","status","expires_at","created_at"],"title":"InviteOut"},"InvitePreviewOut":{"properties":{"project_title":{"type":"string","title":"Project Title"},"role":{"type":"string","title":"Role"},"invited_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invited By Name"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"}},"type":"object","required":["project_title","role","invited_by_name","city"],"title":"InvitePreviewOut"},"JoinRequestOut":{"properties":{"id":{"type":"string","title":"Id"},"business_id":{"type":"string","title":"Business Id"},"user_id":{"type":"string","title":"User Id"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","business_id","user_id","status","created_at"],"title":"JoinRequestOut"},"LeadCreate":{"properties":{"service_provider_id":{"type":"string","title":"Service Provider Id"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"role_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Label"},"user_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Comment"},"contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Name"},"contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Phone"},"contact_telegram":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Telegram"}},"type":"object","required":["service_provider_id"],"title":"LeadCreate"},"LeadCreateResponse":{"properties":{"mode":{"type":"string","title":"Mode"},"lead":{"anyOf":[{"$ref":"#/components/schemas/LeadOut"},{"type":"null"}]},"message_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Text"},"contacts":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Contacts"}},"type":"object","required":["mode"],"title":"LeadCreateResponse"},"LeadMessageCreate":{"properties":{"body":{"type":"string","title":"Body"}},"type":"object","required":["body"],"title":"LeadMessageCreate"},"LeadOut":{"properties":{"id":{"type":"string","title":"Id"},"service_provider_id":{"type":"string","title":"Service Provider Id"},"service_business_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Service Business Id"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"},"role_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Label"},"status":{"type":"string","title":"Status"},"object_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Title"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District"},"area_m2":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Area M2"},"price_per_m2":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Per M2"},"total_price":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Price"},"budget_total":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Budget Total"},"currency":{"type":"string","title":"Currency"},"user_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Comment"},"contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Name"},"contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Phone"},"contact_telegram":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Telegram"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["id","service_provider_id","service_business_id","project_id","team_id","role_label","status","object_title","city","district","area_m2","price_per_m2","total_price","budget_total","currency","user_comment","contact_name","contact_phone","contact_telegram","created_at","updated_at"],"title":"LeadOut"},"LeadPatch":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"LeadPatch"},"LinkApplePayload":{"properties":{"identityToken":{"type":"string","title":"Identitytoken"}},"type":"object","required":["identityToken"],"title":"LinkApplePayload"},"LinkGooglePayload":{"properties":{"code":{"type":"string","title":"Code"},"code_verifier":{"type":"string","title":"Code Verifier"},"redirect_uri":{"type":"string","title":"Redirect Uri"}},"type":"object","required":["code","code_verifier","redirect_uri"],"title":"LinkGooglePayload"},"LinkTelegramPayload":{"properties":{"id":{"type":"integer","title":"Id"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"},"auth_date":{"type":"integer","title":"Auth Date"},"hash":{"type":"string","title":"Hash"}},"type":"object","required":["id","auth_date","hash"],"title":"LinkTelegramPayload"},"LinkedProvidersResponse":{"properties":{"telegram":{"type":"boolean","title":"Telegram"},"apple":{"type":"boolean","title":"Apple"},"google":{"type":"boolean","title":"Google"}},"type":"object","required":["telegram","apple","google"],"title":"LinkedProvidersResponse"},"LiveActivityTokenRequest":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"LiveActivityTokenRequest"},"LiveActivityUpdateTokenRequest":{"properties":{"token":{"type":"string","title":"Token"},"activity_id":{"type":"string","title":"Activity Id"},"developer_id":{"type":"string","title":"Developer Id"},"object_external_id":{"type":"string","title":"Object External Id"}},"type":"object","required":["token","activity_id","developer_id","object_external_id"],"title":"LiveActivityUpdateTokenRequest"},"MapUnknownRequest":{"properties":{"node_id":{"type":"string","format":"uuid","title":"Node Id"}},"type":"object","required":["node_id"],"title":"MapUnknownRequest"},"MappingCreate":{"properties":{"object_field":{"type":"string","maxLength":128,"minLength":1,"title":"Object Field"},"selector":{"type":"string","maxLength":512,"minLength":1,"title":"Selector"},"selector_type":{"type":"string","title":"Selector Type","default":"css"},"attribute":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribute"},"extract_mode":{"type":"string","title":"Extract Mode","default":"full"},"extract_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extract Template"},"extract_regex":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extract Regex"},"is_identifier":{"type":"boolean","title":"Is Identifier","default":false},"is_list":{"type":"boolean","title":"Is List","default":false},"list_item_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"List Item Selector"},"value_prefix":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Value Prefix"},"value_suffix":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Value Suffix"}},"type":"object","required":["object_field","selector"],"title":"MappingCreate"},"MappingUpdate":{"properties":{"object_field":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Object Field"},"selector":{"anyOf":[{"type":"string","maxLength":512,"minLength":1},{"type":"null"}],"title":"Selector"},"selector_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selector Type"},"attribute":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribute"},"extract_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extract Mode"},"extract_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extract Template"},"extract_regex":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extract Regex"},"is_identifier":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Identifier"},"is_list":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is List"},"list_item_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"List Item Selector"},"value_prefix":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Value Prefix"},"value_suffix":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Value Suffix"}},"type":"object","title":"MappingUpdate"},"MaterialNormOut":{"properties":{"id":{"type":"string","title":"Id"},"material_type":{"type":"string","title":"Material Type"},"title":{"type":"string","title":"Title"},"unit":{"type":"string","title":"Unit"},"base_surface":{"type":"string","title":"Base Surface"},"consumption_rate":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Consumption Rate"},"pack_size":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Pack Size"},"waste_percent":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Waste Percent"},"multiplier_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Multiplier Unit"},"multiplier_default":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Multiplier Default"}},"type":"object","required":["id","material_type","title","unit","base_surface","consumption_rate","pack_size","waste_percent","multiplier_unit","multiplier_default"],"title":"MaterialNormOut"},"MaterialSelectionIn":{"properties":{"material_type":{"type":"string","title":"Material Type"},"multiplier":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,6}|(?=[\\d.]{1,11}0*$)\\d{0,6}\\.\\d{0,4}0*$)"},{"type":"null"}],"title":"Multiplier"}},"type":"object","required":["material_type"],"title":"MaterialSelectionIn","description":"Выбранная позиция расчёта."},"MaterialTotalOut":{"properties":{"material_type":{"type":"string","title":"Material Type"},"title":{"type":"string","title":"Title"},"unit":{"type":"string","title":"Unit"},"waste_percent":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Waste Percent"},"quantity_net":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Quantity Net"},"quantity":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Quantity"},"pack_size":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Pack Size"},"packs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Packs"},"leftover":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Leftover"}},"type":"object","required":["material_type","title","unit","waste_percent","quantity_net","quantity","pack_size","packs","leftover"],"title":"MaterialTotalOut"},"MeResponse":{"properties":{"chat_id":{"type":"integer","title":"Chat Id"},"name":{"type":"string","title":"Name"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"}},"type":"object","required":["chat_id","name","username"],"title":"MeResponse"},"MembershipOut":{"properties":{"membership_id":{"type":"string","title":"Membership Id"},"developer_id":{"type":"string","title":"Developer Id"},"developer_name":{"type":"string","title":"Developer Name"},"developer_slug":{"type":"string","title":"Developer Slug"},"joined_at":{"type":"string","title":"Joined At"},"status":{"type":"string","title":"Status"}},"type":"object","required":["membership_id","developer_id","developer_name","developer_slug","joined_at","status"],"title":"MembershipOut"},"MergeSuggestionListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"items":{"items":{"$ref":"#/components/schemas/MergeSuggestionOut"},"type":"array","title":"Items"}},"type":"object","required":["total","page","page_size","items"],"title":"MergeSuggestionListResponse"},"MergeSuggestionOut":{"properties":{"id":{"type":"string","title":"Id"},"object_a":{"$ref":"#/components/schemas/ObjectSummary"},"object_b":{"$ref":"#/components/schemas/ObjectSummary"},"similarity_score":{"type":"number","title":"Similarity Score"},"status":{"type":"string","title":"Status"},"suggested_at":{"type":"string","format":"date-time","title":"Suggested At"},"reviewed_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewed By"},"reviewed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reviewed At"}},"type":"object","required":["id","object_a","object_b","similarity_score","status","suggested_at","reviewed_by","reviewed_at"],"title":"MergeSuggestionOut"},"MetricTrend":{"properties":{"metric":{"type":"string","title":"Metric"},"total":{"type":"integer","title":"Total"},"last_7d":{"type":"integer","title":"Last 7D"},"prev_7d":{"type":"integer","title":"Prev 7D"},"growth_pct":{"type":"number","title":"Growth Pct"},"series":{"items":{"$ref":"#/components/schemas/TrendPoint"},"type":"array","title":"Series"},"forecast":{"items":{"$ref":"#/components/schemas/TrendPoint"},"type":"array","title":"Forecast"}},"type":"object","required":["metric","total","last_7d","prev_7d","growth_pct","series","forecast"],"title":"MetricTrend"},"MigrationBriefResponse":{"properties":{"export":{"$ref":"#/components/schemas/ExportAdapterItem"},"last_null_counts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Last Null Counts"},"html_samples":{"items":{"$ref":"#/components/schemas/HtmlSampleItem"},"type":"array","title":"Html Samples"},"inferred_notes":{"items":{"type":"string"},"type":"array","title":"Inferred Notes"}},"type":"object","required":["export","last_null_counts","html_samples","inferred_notes"],"title":"MigrationBriefResponse"},"ModPatch":{"properties":{"revoked":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Revoked"},"revoked_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revoked Reason"},"platforms":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Platforms"}},"type":"object","title":"ModPatch"},"NativeTokenRequest":{"properties":{"token":{"type":"string","title":"Token"},"platform":{"type":"string","title":"Platform"},"persona":{"type":"string","title":"Persona"}},"type":"object","required":["token","platform","persona"],"title":"NativeTokenRequest"},"NewObjectsSettingsRequest":{"properties":{"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["enabled"],"title":"NewObjectsSettingsRequest"},"NoteItem":{"properties":{"id":{"type":"string","title":"Id"},"text":{"type":"string","title":"Text"}},"type":"object","required":["id","text"],"title":"NoteItem"},"NotifConfigOut":{"properties":{"batch_notification_threshold":{"type":"integer","title":"Batch Notification Threshold"},"error_alert_threshold":{"type":"integer","title":"Error Alert Threshold"}},"type":"object","required":["batch_notification_threshold","error_alert_threshold"],"title":"NotifConfigOut"},"NotifConfigUpdate":{"properties":{"batch_notification_threshold":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Notification Threshold"},"error_alert_threshold":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Error Alert Threshold"}},"type":"object","title":"NotifConfigUpdate"},"ObjectBatchRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ObjectRef"},"type":"array","maxItems":100,"title":"Items"}},"type":"object","required":["items"],"title":"ObjectBatchRequest"},"ObjectBatchResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ObjectItem"},"type":"array","title":"Items"},"missing":{"items":{"$ref":"#/components/schemas/ObjectRef"},"type":"array","title":"Missing"}},"type":"object","required":["items","missing"],"title":"ObjectBatchResponse"},"ObjectCreate":{"properties":{"title":{"type":"string","title":"Title"},"object_type":{"type":"string","title":"Object Type","default":"apartment"},"status":{"type":"string","title":"Status","default":"for_sale"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street"},"house":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"House"},"quarter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quarter"},"building":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Building"},"floor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Floor"},"total_floors":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Floors"},"area":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Area"},"rooms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rooms"},"price":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price"},"price_per_sqm":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Per Sqm"},"completion_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Completion Date"},"registration_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Url"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"extra":{"additionalProperties":true,"type":"object","title":"Extra","default":{}},"claim_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim External Id"},"attributions":{"items":{"$ref":"#/components/schemas/AttributionCreate"},"type":"array","title":"Attributions","default":[]}},"type":"object","required":["title"],"title":"ObjectCreate"},"ObjectFieldMeta":{"properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"required":{"type":"boolean","title":"Required"},"description_ru":{"type":"string","title":"Description Ru"}},"type":"object","required":["name","type","required","description_ru"],"title":"ObjectFieldMeta"},"ObjectHistoryResponse":{"properties":{"object_id":{"type":"string","title":"Object Id"},"sources":{"items":{"$ref":"#/components/schemas/HistorySource"},"type":"array","title":"Sources"},"entries":{"items":{"$ref":"#/components/schemas/HistoryEntry"},"type":"array","title":"Entries"},"next_before":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Before"}},"type":"object","required":["object_id","sources","entries","next_before"],"title":"ObjectHistoryResponse"},"ObjectImportCheckRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConflictCheckItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ObjectImportCheckRequest"},"ObjectImportExecuteRequest":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/ObjectImportRow"},"type":"array","title":"Rows"}},"type":"object","required":["rows"],"title":"ObjectImportExecuteRequest"},"ObjectImportItem":{"properties":{"external_id":{"type":"string","title":"External Id","default":""},"title":{"type":"string","title":"Title","default":""},"object_type":{"type":"string","title":"Object Type","default":"apartment"},"status":{"type":"string","title":"Status","default":"for_sale"},"developer_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Slug"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"price":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price"},"completion_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Completion Date"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"extra":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra"}},"type":"object","title":"ObjectImportItem"},"ObjectImportRow":{"properties":{"index":{"type":"integer","title":"Index"},"data":{"$ref":"#/components/schemas/ObjectImportItem"},"conflict_action":{"type":"string","enum":["overwrite","update","skip"],"title":"Conflict Action","default":"skip"},"field_mask":{"items":{"type":"string"},"type":"array","title":"Field Mask","default":[]}},"type":"object","required":["index","data"],"title":"ObjectImportRow"},"ObjectItem":{"properties":{"id":{"type":"string","title":"Id"},"developer_id":{"type":"string","title":"Developer Id"},"external_id":{"type":"string","title":"External Id"},"title":{"type":"string","title":"Title"},"object_type":{"type":"string","title":"Object Type"},"status":{"type":"string","title":"Status"},"registration_open":{"type":"boolean","title":"Registration Open"},"object_url":{"type":"string","title":"Object Url"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street"},"house":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"House"},"quarter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quarter"},"building":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Building"},"floor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Floor"},"total_floors":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Floors"},"area":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Area"},"rooms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rooms"},"price":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price"},"price_per_sqm":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Per Sqm"},"estimated_price":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Estimated Price"},"completion_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Completion Date"},"sales_start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Sales Start Date"},"registration_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Registration Start Date"},"offline_booking_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Offline Booking Date"},"registration_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Url"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"promotions":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Promotions"},"extra":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra"},"first_seen_at":{"type":"string","format":"date-time","title":"First Seen At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","developer_id","external_id","title","object_type","status","registration_open","object_url","first_seen_at","updated_at"],"title":"ObjectItem"},"ObjectListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"items":{"items":{"$ref":"#/components/schemas/ObjectItem"},"type":"array","title":"Items"}},"type":"object","required":["total","page","page_size","items"],"title":"ObjectListResponse"},"ObjectPatch":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"object_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Type"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"registration_open":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Registration Open"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street"},"house":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"House"},"quarter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quarter"},"building":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Building"},"floor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Floor"},"total_floors":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Floors"},"area":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Area"},"rooms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rooms"},"price":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price"},"price_per_sqm":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Per Sqm"},"completion_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Completion Date"},"sales_start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Sales Start Date"},"registration_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Registration Start Date"},"offline_booking_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Offline Booking Date"},"registration_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Url"},"extra":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra"},"claim_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claim External Id"}},"type":"object","title":"ObjectPatch"},"ObjectPublicStats":{"properties":{"object_external_id":{"type":"string","title":"Object External Id"},"period_days":{"type":"integer","title":"Period Days"},"views":{"type":"integer","title":"Views"}},"type":"object","required":["object_external_id","period_days","views"],"title":"ObjectPublicStats"},"ObjectRef":{"properties":{"developer_id":{"type":"string","title":"Developer Id"},"external_id":{"type":"string","title":"External Id"}},"type":"object","required":["developer_id","external_id"],"title":"ObjectRef"},"ObjectSummary":{"properties":{"object_id":{"type":"string","title":"Object Id"},"title":{"type":"string","title":"Title"},"object_type":{"type":"string","title":"Object Type"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"area":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Area"},"rooms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rooms"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price"},"developer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Id"}},"type":"object","required":["object_id","title","object_type","address","city","area","rooms","price","developer_id"],"title":"ObjectSummary"},"ObjectTypeCreate":{"properties":{"slug":{"type":"string","title":"Slug"},"labels":{"additionalProperties":{"type":"string"},"type":"object","title":"Labels"},"parent_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string"},{"type":"null"}],"title":"Parent Id"},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["slug","labels"],"title":"ObjectTypeCreate"},"ObjectTypeImportCheckRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConflictCheckItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ObjectTypeImportCheckRequest"},"ObjectTypeImportExecuteRequest":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/ObjectTypeImportRow"},"type":"array","title":"Rows"}},"type":"object","required":["rows"],"title":"ObjectTypeImportExecuteRequest"},"ObjectTypeImportItem":{"properties":{"slug":{"type":"string","title":"Slug"},"labels":{"additionalProperties":{"type":"string"},"type":"object","title":"Labels","default":{}},"parent_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Slug"},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["slug"],"title":"ObjectTypeImportItem"},"ObjectTypeImportRow":{"properties":{"index":{"type":"integer","title":"Index"},"data":{"$ref":"#/components/schemas/ObjectTypeImportItem"},"conflict_action":{"type":"string","enum":["overwrite","update","skip"],"title":"Conflict Action","default":"skip"},"field_mask":{"items":{"type":"string"},"type":"array","title":"Field Mask","default":[]}},"type":"object","required":["index","data"],"title":"ObjectTypeImportRow"},"ObjectTypeUpdate":{"properties":{"labels":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Labels"},"parent_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string"},{"type":"null"}],"title":"Parent Id"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"}},"type":"object","title":"ObjectTypeUpdate"},"ObjectViewItem":{"properties":{"object_external_id":{"type":"string","title":"Object External Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"views":{"type":"integer","title":"Views"}},"type":"object","required":["object_external_id","title","views"],"title":"ObjectViewItem"},"Opening-Input":{"properties":{"kind":{"type":"string","enum":["window","door"],"title":"Kind"},"width_m":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,8}|(?=[\\d.]{1,11}0*$)\\d{0,8}\\.\\d{0,2}0*$)"}],"title":"Width M"},"height_m":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,8}|(?=[\\d.]{1,11}0*$)\\d{0,8}\\.\\d{0,2}0*$)"}],"title":"Height M"},"count":{"type":"integer","minimum":1.0,"title":"Count","default":1}},"type":"object","required":["kind","width_m","height_m"],"title":"Opening","description":"Проём в стене — вычитается из площади стен при расчёте."},"Opening-Output":{"properties":{"kind":{"type":"string","enum":["window","door"],"title":"Kind"},"width_m":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,8}|(?=[\\d.]{1,11}0*$)\\d{0,8}\\.\\d{0,2}0*$)","title":"Width M"},"height_m":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,8}|(?=[\\d.]{1,11}0*$)\\d{0,8}\\.\\d{0,2}0*$)","title":"Height M"},"count":{"type":"integer","minimum":1.0,"title":"Count","default":1}},"type":"object","required":["kind","width_m","height_m"],"title":"Opening","description":"Проём в стене — вычитается из площади стен при расчёте."},"PageCreate":{"properties":{"page_type":{"type":"string","title":"Page Type"},"url_template":{"type":"string","maxLength":2048,"minLength":1,"title":"Url Template"},"is_paginated":{"type":"boolean","title":"Is Paginated","default":false},"pagination_start":{"type":"integer","title":"Pagination Start","default":1},"pagination_max":{"type":"integer","title":"Pagination Max","default":10},"wait_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wait Selector"},"wait_timeout_ms":{"type":"integer","minimum":0.0,"title":"Wait Timeout Ms","default":10000},"dismiss_selectors":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Dismiss Selectors"},"sort_order":{"type":"integer","title":"Sort Order","default":0},"parent_page_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parent Page Id"},"link_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Selector"},"link_attribute":{"type":"string","title":"Link Attribute","default":"href"}},"type":"object","required":["page_type","url_template"],"title":"PageCreate"},"PageUpdate":{"properties":{"page_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Type"},"url_template":{"anyOf":[{"type":"string","maxLength":2048,"minLength":1},{"type":"null"}],"title":"Url Template"},"is_paginated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Paginated"},"pagination_start":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pagination Start"},"pagination_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pagination Max"},"wait_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wait Selector"},"wait_timeout_ms":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Wait Timeout Ms"},"dismiss_selectors":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Dismiss Selectors"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"},"parent_page_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parent Page Id"},"link_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Selector"},"link_attribute":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Attribute"}},"type":"object","title":"PageUpdate"},"PageViewBreakdownItem":{"properties":{"path_key":{"type":"string","title":"Path Key"},"ua_type":{"type":"string","title":"Ua Type"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["path_key","ua_type","count"],"title":"PageViewBreakdownItem"},"ParseTableRequest":{"properties":{"filename":{"type":"string","maxLength":255,"minLength":1,"title":"Filename"},"content_base64":{"type":"string","maxLength":6990522,"minLength":1,"title":"Content Base64"}},"type":"object","required":["filename","content_base64"],"title":"ParseTableRequest"},"ParseTableResponse":{"properties":{"columns":{"items":{"type":"string"},"type":"array","title":"Columns"},"rows":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Rows"}},"type":"object","required":["columns","rows"],"title":"ParseTableResponse"},"ParsingAdapterOut":{"properties":{"id":{"type":"string","title":"Id"},"developer_ids":{"items":{"type":"string"},"type":"array","title":"Developer Ids"},"developer_slugs":{"items":{"type":"string"},"type":"array","title":"Developer Slugs"},"name":{"type":"string","title":"Name"},"adapter_type":{"type":"string","title":"Adapter Type"},"custom_adapter_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Adapter Slug"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"use_playwright":{"type":"boolean","title":"Use Playwright"},"retry_count":{"type":"integer","title":"Retry Count"},"retry_delay_seconds":{"type":"integer","title":"Retry Delay Seconds"},"retry_backoff_multiplier":{"type":"number","title":"Retry Backoff Multiplier"},"created_at":{"title":"Created At"},"updated_at":{"title":"Updated At"},"pages":{"items":{"$ref":"#/components/schemas/AdapterPageOut"},"type":"array","title":"Pages"},"mappings":{"items":{"$ref":"#/components/schemas/FieldMappingOut"},"type":"array","title":"Mappings"}},"type":"object","required":["id","developer_ids","developer_slugs","name","adapter_type","custom_adapter_slug","config","is_enabled","use_playwright","retry_count","retry_delay_seconds","retry_backoff_multiplier","created_at","updated_at","pages","mappings"],"title":"ParsingAdapterOut"},"PendingDeveloperCreate":{"properties":{"name":{"type":"string","title":"Name"},"website":{"type":"string","title":"Website"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["name","website"],"title":"PendingDeveloperCreate"},"PendingDeveloperOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"website":{"type":"string","title":"Website"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","website","notes","status","created_at","updated_at"],"title":"PendingDeveloperOut"},"PopularObjectEntry":{"properties":{"object":{"$ref":"#/components/schemas/ObjectItem"},"views_30d":{"type":"integer","title":"Views 30D"}},"type":"object","required":["object","views_30d"],"title":"PopularObjectEntry"},"PopularServiceEntry":{"properties":{"service":{"$ref":"#/components/schemas/ServiceOut"},"views_30d":{"type":"integer","title":"Views 30D"}},"type":"object","required":["service","views_30d"],"title":"PopularServiceEntry"},"PreviewExtractElement":{"properties":{"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"attribute_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribute Value"},"outer_html":{"type":"string","title":"Outer Html"}},"type":"object","required":["text","attribute_value","outer_html"],"title":"PreviewExtractElement"},"PreviewExtractRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url"},"selector":{"type":"string","title":"Selector"},"selector_type":{"type":"string","title":"Selector Type","default":"css"},"attribute":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attribute"},"extract_mode":{"type":"string","title":"Extract Mode","default":"full"},"extract_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extract Template"},"extract_regex":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extract Regex"},"wait_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wait Selector"},"wait_timeout_ms":{"type":"integer","title":"Wait Timeout Ms","default":10000},"render_timeout_ms":{"type":"integer","title":"Render Timeout Ms","default":30000},"dismiss_selectors":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Dismiss Selectors"}},"type":"object","required":["url","selector"],"title":"PreviewExtractRequest"},"PreviewExtractResponse":{"properties":{"elements":{"items":{"$ref":"#/components/schemas/PreviewExtractElement"},"type":"array","title":"Elements"}},"type":"object","required":["elements"],"title":"PreviewExtractResponse"},"PreviewRenderRequest":{"properties":{"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url"},"wait_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wait Selector"},"wait_timeout_ms":{"type":"integer","title":"Wait Timeout Ms","default":10000},"render_timeout_ms":{"type":"integer","title":"Render Timeout Ms","default":30000},"dismiss_selectors":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Dismiss Selectors"}},"type":"object","required":["url"],"title":"PreviewRenderRequest"},"PreviewRenderResponse":{"properties":{"html":{"type":"string","title":"Html"},"screenshot_base64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Base64"}},"type":"object","required":["html","screenshot_base64"],"title":"PreviewRenderResponse"},"ProfileOut":{"properties":{"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Phone"},"contact_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Email"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"}},"type":"object","required":["name","slug","description","contact_phone","contact_email","website"],"title":"ProfileOut"},"ProfilePatch":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Phone"},"contact_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Email"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"}},"type":"object","title":"ProfilePatch"},"ProjectCreate":{"properties":{"title":{"type":"string","title":"Title"},"developer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Id"},"object_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object External Id"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District"},"area_m2":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Area M2"},"price_per_m2":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Per M2"},"total_price":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Price"}},"type":"object","required":["title"],"title":"ProjectCreate"},"ProjectEventOut":{"properties":{"id":{"type":"string","title":"Id"},"event_type":{"type":"string","title":"Event Type"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","event_type","payload","created_at"],"title":"ProjectEventOut"},"ProjectOut":{"properties":{"id":{"type":"string","title":"Id"},"developer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Id"},"object_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object External Id"},"title":{"type":"string","title":"Title"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District"},"area_m2":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Area M2"},"price_per_m2":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Per M2"},"total_price":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Price"},"budget_limit":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Budget Limit"},"currency":{"type":"string","title":"Currency"},"interest_status":{"type":"string","title":"Interest Status"},"notes_general":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes General"},"notes_pros":{"items":{"$ref":"#/components/schemas/NoteItem"},"type":"array","title":"Notes Pros"},"notes_cons":{"items":{"$ref":"#/components/schemas/NoteItem"},"type":"array","title":"Notes Cons"},"notes_questions":{"items":{"$ref":"#/components/schemas/QuestionItem"},"type":"array","title":"Notes Questions"},"checklist":{"items":{},"type":"array","title":"Checklist"},"has_unseen_changes":{"type":"boolean","title":"Has Unseen Changes"},"my_role":{"type":"string","title":"My Role"},"hide_amounts_from_contractors":{"type":"boolean","title":"Hide Amounts From Contractors"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"object_registration_start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Registration Start Date"},"object_offline_booking_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Offline Booking Date"},"object_completion_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Completion Date"}},"type":"object","required":["id","developer_id","object_external_id","title","city","district","area_m2","price_per_m2","total_price","budget_limit","currency","interest_status","notes_general","notes_pros","notes_cons","notes_questions","checklist","has_unseen_changes","my_role","hide_amounts_from_contractors","created_at","updated_at","object_registration_start_date","object_offline_booking_date","object_completion_date"],"title":"ProjectOut"},"ProjectTeamOut":{"properties":{"team_id":{"type":"string","title":"Team Id"},"name":{"type":"string","title":"Name"},"attached_at":{"type":"string","title":"Attached At"},"sort_order":{"type":"integer","title":"Sort Order"},"roles_total":{"type":"integer","title":"Roles Total"},"roles_filled":{"type":"integer","title":"Roles Filled"}},"type":"object","required":["team_id","name","attached_at","sort_order","roles_total","roles_filled"],"title":"ProjectTeamOut"},"ProjectUpdate":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District"},"area_m2":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Area M2"},"price_per_m2":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Per M2"},"total_price":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Total Price"},"budget_limit":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Budget Limit"},"interest_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Interest Status"},"notes_general":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes General"},"notes_pros":{"anyOf":[{"items":{"$ref":"#/components/schemas/NoteItem"},"type":"array"},{"type":"null"}],"title":"Notes Pros"},"notes_cons":{"anyOf":[{"items":{"$ref":"#/components/schemas/NoteItem"},"type":"array"},{"type":"null"}],"title":"Notes Cons"},"notes_questions":{"anyOf":[{"items":{"$ref":"#/components/schemas/QuestionItem"},"type":"array"},{"type":"null"}],"title":"Notes Questions"},"checklist":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Checklist"},"hide_amounts_from_contractors":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Hide Amounts From Contractors"}},"type":"object","title":"ProjectUpdate"},"ProviderCreate":{"properties":{"slug":{"type":"string","title":"Slug"},"display_name":{"type":"string","title":"Display Name"},"model_name":{"type":"string","title":"Model Name"},"api_key_env":{"type":"string","title":"Api Key Env"},"extra_config":{"additionalProperties":true,"type":"object","title":"Extra Config","default":{}},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["slug","display_name","model_name","api_key_env"],"title":"ProviderCreate"},"ProviderOut":{"properties":{"id":{"type":"integer","title":"Id"},"slug":{"type":"string","title":"Slug"},"display_name":{"type":"string","title":"Display Name"},"model_name":{"type":"string","title":"Model Name"},"api_key_env":{"type":"string","title":"Api Key Env"},"extra_config":{"additionalProperties":true,"type":"object","title":"Extra Config"},"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["id","slug","display_name","model_name","api_key_env","extra_config","is_active"],"title":"ProviderOut"},"ProviderTestInput":{"properties":{"slug":{"type":"string","title":"Slug"},"model_name":{"type":"string","title":"Model Name"},"api_key_env":{"type":"string","title":"Api Key Env"}},"type":"object","required":["slug","model_name","api_key_env"],"title":"ProviderTestInput"},"PublicDestinationOut":{"properties":{"platform":{"type":"string","title":"Platform"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"visibility":{"type":"string","title":"Visibility"},"member_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Member Count"}},"type":"object","required":["platform","title","username","url","visibility"],"title":"PublicDestinationOut"},"PublicServiceCreate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories","default":[]},"custom_categories":{"items":{"$ref":"#/components/schemas/CustomCategoryInput"},"type":"array","title":"Custom Categories","default":[]},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"features":{"items":{"type":"string"},"type":"array","title":"Features","default":[]},"object_types":{"items":{"type":"string"},"type":"array","title":"Object Types","default":[]},"provider_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Type"},"attributes":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Attributes","default":{}},"locations":{"items":{"$ref":"#/components/schemas/ServiceLocation"},"type":"array","title":"Locations","default":[]},"price_min":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Min"},"price_max":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Max"},"price_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Currency"},"price_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Unit"},"price_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Notes"},"contacts":{"$ref":"#/components/schemas/ServiceContacts","default":{"phones":[],"emails":[],"websites":[],"social_links":[],"websites_display":[]}}},"type":"object","required":["name"],"title":"PublicServiceCreate","description":"`ServiceCreate` с автомодерацией — для публичной формы «добавить услугу».\n\nБазовый класс намеренно остаётся без фильтра: его используют админский\nроутер и bulk-импорт, а те доверенные."},"PublicServiceUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Categories"},"custom_categories":{"items":{"$ref":"#/components/schemas/CustomCategoryInput"},"type":"array","title":"Custom Categories","default":[]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"features":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Features"},"object_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Object Types"},"provider_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Type"},"attributes":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Attributes"},"locations":{"anyOf":[{"items":{"$ref":"#/components/schemas/ServiceLocation"},"type":"array"},{"type":"null"}],"title":"Locations"},"price_min":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Min"},"price_max":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Max"},"price_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Currency"},"price_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Unit"},"price_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Notes"},"contacts":{"anyOf":[{"$ref":"#/components/schemas/ServiceContacts"},{"type":"null"}]}},"type":"object","title":"PublicServiceUpdate","description":"`ServiceUpdate` с автомодерацией — для публичного редактирования и\nбизнес-портала PWA. Базовый класс используется админкой и не фильтруется."},"PushNotificationOut":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"body":{"type":"string","title":"Body"},"object_developer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Developer Id"},"object_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object External Id"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","title","body","object_developer_id","object_external_id","created_at"],"title":"PushNotificationOut"},"PwaObjectDetail":{"properties":{"external_id":{"type":"string","title":"External Id"},"title":{"type":"string","title":"Title"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"status":{"type":"string","title":"Status"},"raw_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Raw Url"},"locked_fields":{"items":{"type":"string"},"type":"array","title":"Locked Fields"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["external_id","title","address","status","raw_url","locked_fields","updated_at"],"title":"PwaObjectDetail"},"PwaObjectItem":{"properties":{"external_id":{"type":"string","title":"External Id"},"title":{"type":"string","title":"Title"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"status":{"type":"string","title":"Status"},"locked_fields":{"items":{"type":"string"},"type":"array","title":"Locked Fields"}},"type":"object","required":["external_id","title","address","status","locked_fields"],"title":"PwaObjectItem"},"PwaObjectListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PwaObjectItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"PwaObjectListOut"},"PwaObjectPatch":{"properties":{"title":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Title"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"}},"type":"object","title":"PwaObjectPatch"},"QuestionItem":{"properties":{"id":{"type":"string","title":"Id"},"text":{"type":"string","title":"Text"},"resolved":{"type":"boolean","title":"Resolved","default":false},"answer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Answer"}},"type":"object","required":["id","text"],"title":"QuestionItem"},"RateLimitConfigOut":{"properties":{"key":{"type":"string","title":"Key"},"value":{"type":"string","title":"Value"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["key","value"],"title":"RateLimitConfigOut"},"RateLimitConfigUpdate":{"properties":{"value":{"type":"string","title":"Value"}},"type":"object","required":["value"],"title":"RateLimitConfigUpdate"},"RedirectListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RedirectOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"RedirectListResponse"},"RedirectOut":{"properties":{"token":{"type":"string","title":"Token"},"developer_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Slug"},"object_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object External Id"},"source":{"type":"string","title":"Source"},"destination_url":{"type":"string","title":"Destination Url"},"active":{"type":"boolean","title":"Active"},"deactivated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deactivated At"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["token","developer_slug","object_external_id","source","destination_url","active","deactivated_at","created_at"],"title":"RedirectOut"},"RegenerateBody":{"properties":{"developer_slug":{"type":"string","title":"Developer Slug"},"object_external_id":{"type":"string","title":"Object External Id"},"destination_url":{"type":"string","title":"Destination Url"}},"type":"object","required":["developer_slug","object_external_id","destination_url"],"title":"RegenerateBody"},"RegistrationStatusItem":{"properties":{"developer_id":{"type":"string","title":"Developer Id"},"external_id":{"type":"string","title":"External Id"},"title":{"type":"string","title":"Title"},"registration_open":{"type":"boolean","title":"Registration Open"},"registration_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Url"},"registration_start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Registration Start Date"},"object_url":{"type":"string","title":"Object Url"}},"type":"object","required":["developer_id","external_id","title","registration_open","registration_url","registration_start_date","object_url"],"title":"RegistrationStatusItem"},"RejectIn":{"properties":{"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","title":"RejectIn"},"ReleaseNoteOut":{"properties":{"version":{"type":"string","title":"Version"},"date":{"type":"string","title":"Date"},"notes_ru":{"type":"string","title":"Notes Ru"}},"type":"object","required":["version","date","notes_ru"],"title":"ReleaseNoteOut"},"RenovationRoleCreate":{"properties":{"label":{"type":"string","title":"Label"},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["label"],"title":"RenovationRoleCreate"},"RenovationRoleOut":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"},"sort_order":{"type":"integer","title":"Sort Order"},"is_filled":{"type":"boolean","title":"Is Filled"},"specialists":{"items":{"$ref":"#/components/schemas/RenovationRoleSpecialistOut"},"type":"array","title":"Specialists"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","label","sort_order","is_filled","specialists","created_at"],"title":"RenovationRoleOut"},"RenovationRoleSpecialistOut":{"properties":{"id":{"type":"string","title":"Id"},"service_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Service Id"},"service_name":{"type":"string","title":"Service Name"},"is_linked":{"type":"boolean","title":"Is Linked"},"added_at":{"type":"string","format":"date-time","title":"Added At"}},"type":"object","required":["id","service_id","service_name","is_linked","added_at"],"title":"RenovationRoleSpecialistOut"},"RenovationRoleUpdate":{"properties":{"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"}},"type":"object","title":"RenovationRoleUpdate"},"RenovationTeamCreate":{"properties":{"name":{"type":"string","title":"Name","default":"Команда ремонта"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"object_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object External Id"},"developer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Id"},"template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template"}},"type":"object","title":"RenovationTeamCreate"},"RenovationTeamListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"items":{"items":{"$ref":"#/components/schemas/RenovationTeamOut"},"type":"array","title":"Items"}},"type":"object","required":["total","page","page_size","items"],"title":"RenovationTeamListResponse"},"RenovationTeamOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_public":{"type":"boolean","title":"Is Public"},"share_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Share Url"},"roles":{"items":{"$ref":"#/components/schemas/RenovationRoleOut"},"type":"array","title":"Roles"},"roles_total":{"type":"integer","title":"Roles Total"},"roles_filled":{"type":"integer","title":"Roles Filled"},"object_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object External Id"},"developer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Id"},"developer_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Developer Slug"},"copied_from_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Copied From Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","description","is_public","share_url","roles","roles_total","roles_filled","object_external_id","developer_id","copied_from_id","created_at","updated_at"],"title":"RenovationTeamOut"},"RenovationTeamPublicOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"share_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Share Token"},"roles":{"items":{"$ref":"#/components/schemas/RenovationRoleOut"},"type":"array","title":"Roles"},"roles_total":{"type":"integer","title":"Roles Total"},"roles_filled":{"type":"integer","title":"Roles Filled"},"view_count":{"type":"integer","title":"View Count","default":0},"copy_count":{"type":"integer","title":"Copy Count","default":0},"object_external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object External Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","description","roles","roles_total","roles_filled","object_external_id","created_at"],"title":"RenovationTeamPublicOut"},"RenovationTeamUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"RenovationTeamUpdate"},"ReorderTeamsRequest":{"properties":{"team_ids":{"items":{"type":"string"},"type":"array","title":"Team Ids"}},"type":"object","required":["team_ids"],"title":"ReorderTeamsRequest"},"ReviewBody":{"properties":{"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","title":"ReviewBody"},"ReviewCreate":{"properties":{"rating":{"type":"integer","title":"Rating"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"}},"type":"object","required":["rating"],"title":"ReviewCreate"},"ReviewIn":{"properties":{"rating":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Rating"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"}},"type":"object","required":["rating"],"title":"ReviewIn"},"ReviewReplyBody":{"properties":{"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"}},"type":"object","title":"ReviewReplyBody","description":"Публичный ответ владельца карточки. Пустой текст снимает ответ."},"ReviewReportBody":{"properties":{"reason":{"type":"string","title":"Reason"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"type":"object","required":["reason"],"title":"ReviewReportBody","description":"Жалоба на отзыв (#326)."},"ReviewReportOut":{"properties":{"id":{"type":"string","title":"Id"},"reason":{"type":"string","title":"Reason"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","reason","comment","status","created_at"],"title":"ReviewReportOut"},"ReviewReportResult":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"ReviewReportResult"},"ReviewsResponse":{"properties":{"reviews":{"items":{"$ref":"#/components/schemas/src__api__routers__mods__ReviewOut"},"type":"array","title":"Reviews"},"mine":{"anyOf":[{"$ref":"#/components/schemas/src__api__routers__mods__ReviewOut"},{"type":"null"}]}},"type":"object","required":["reviews","mine"],"title":"ReviewsResponse"},"RevocationOut":{"properties":{"vote_id":{"type":"string","title":"Vote Id"},"target_membership_id":{"type":"string","title":"Target Membership Id"},"status":{"type":"string","title":"Status"},"expires_at":{"type":"string","title":"Expires At"},"yes_count":{"type":"integer","title":"Yes Count"},"no_count":{"type":"integer","title":"No Count"},"eligible_count":{"type":"integer","title":"Eligible Count"}},"type":"object","required":["vote_id","target_membership_id","status","expires_at","yes_count","no_count","eligible_count"],"title":"RevocationOut"},"RoomCreate":{"properties":{"name":{"type":"string","title":"Name"},"floor_area_m2":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,8}|(?=[\\d.]{1,11}0*$)\\d{0,8}\\.\\d{0,2}0*$)"}],"title":"Floor Area M2"},"wall_perimeter_m":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,8}|(?=[\\d.]{1,11}0*$)\\d{0,8}\\.\\d{0,2}0*$)"}],"title":"Wall Perimeter M"},"ceiling_height_m":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,8}|(?=[\\d.]{1,11}0*$)\\d{0,8}\\.\\d{0,2}0*$)"}],"title":"Ceiling Height M"},"openings":{"items":{"$ref":"#/components/schemas/Opening-Input"},"type":"array","title":"Openings"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"}},"type":"object","required":["name","floor_area_m2","wall_perimeter_m","ceiling_height_m"],"title":"RoomCreate"},"RoomOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"floor_area_m2":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Floor Area M2"},"wall_perimeter_m":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Wall Perimeter M"},"ceiling_height_m":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Ceiling Height M"},"openings":{"items":{"$ref":"#/components/schemas/Opening-Output"},"type":"array","title":"Openings"},"sort_order":{"type":"integer","title":"Sort Order"}},"type":"object","required":["id","name","floor_area_m2","wall_perimeter_m","ceiling_height_m","openings","sort_order"],"title":"RoomOut"},"RoomQuantityOut":{"properties":{"material_type":{"type":"string","title":"Material Type"},"base_surface":{"type":"string","title":"Base Surface"},"base_quantity":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Base Quantity"},"quantity":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Quantity"}},"type":"object","required":["material_type","base_surface","base_quantity","quantity"],"title":"RoomQuantityOut"},"RoomResultOut":{"properties":{"name":{"type":"string","title":"Name"},"quantities":{"items":{"$ref":"#/components/schemas/RoomQuantityOut"},"type":"array","title":"Quantities"}},"type":"object","required":["name","quantities"],"title":"RoomResultOut"},"RoomUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"floor_area_m2":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,8}|(?=[\\d.]{1,11}0*$)\\d{0,8}\\.\\d{0,2}0*$)"},{"type":"null"}],"title":"Floor Area M2"},"wall_perimeter_m":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,8}|(?=[\\d.]{1,11}0*$)\\d{0,8}\\.\\d{0,2}0*$)"},{"type":"null"}],"title":"Wall Perimeter M"},"ceiling_height_m":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,8}|(?=[\\d.]{1,11}0*$)\\d{0,8}\\.\\d{0,2}0*$)"},{"type":"null"}],"title":"Ceiling Height M"},"openings":{"anyOf":[{"items":{"$ref":"#/components/schemas/Opening-Input"},"type":"array"},{"type":"null"}],"title":"Openings"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"}},"type":"object","title":"RoomUpdate"},"RunHistoryEntry":{"properties":{"date":{"type":"string","title":"Date"},"event_count":{"type":"integer","title":"Event Count"}},"type":"object","required":["date","event_count"],"title":"RunHistoryEntry"},"RunOut":{"properties":{"id":{"type":"integer","title":"Id"},"run_id":{"type":"string","title":"Run Id"},"task_code":{"type":"string","title":"Task Code"},"status":{"type":"string","title":"Status"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"suggestions_count":{"type":"integer","title":"Suggestions Count"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens"},"cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost Usd"},"log_entries":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Log Entries"},"run_filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Run Filters"}},"type":"object","required":["id","run_id","task_code","status","started_at","finished_at","suggestions_count","error_message","total_tokens","cost_usd","log_entries"],"title":"RunOut"},"SandboxInfo":{"properties":{"message":{"type":"string","title":"Message"},"description":{"type":"string","title":"Description"},"endpoints":{"items":{"type":"string"},"type":"array","title":"Endpoints"}},"type":"object","required":["message","description","endpoints"],"title":"SandboxInfo"},"ServiceAttributeOut":{"properties":{"code":{"type":"string","title":"Code"},"label":{"type":"string","title":"Label"},"multi":{"type":"boolean","title":"Multi"},"values":{"items":{"$ref":"#/components/schemas/ServiceFacetValueOut"},"type":"array","title":"Values"}},"type":"object","required":["code","label","multi","values"],"title":"ServiceAttributeOut","description":"Характеристика, доступная категории и её потомкам (#455)."},"ServiceBusinessCreate":{"properties":{"name":{"type":"string","title":"Name"},"slug":{"type":"string","maxLength":100,"title":"Slug"},"source_invite_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Invite Token"},"category":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Category"},"city":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"City"},"phone":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Phone"},"provider_type":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Provider Type"}},"type":"object","required":["name","slug"],"title":"ServiceBusinessCreate"},"ServiceBusinessMemberOut":{"properties":{"user_id":{"type":"string","title":"User Id"},"role":{"type":"string","title":"Role"},"status":{"type":"string","title":"Status"},"joined_at":{"type":"string","format":"date-time","title":"Joined At"}},"type":"object","required":["user_id","role","status","joined_at"],"title":"ServiceBusinessMemberOut"},"ServiceBusinessOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_verified":{"type":"boolean","title":"Is Verified"}},"type":"object","required":["id","name","slug","description","is_verified"],"title":"ServiceBusinessOut"},"ServiceBusinessPatch":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"ServiceBusinessPatch"},"ServiceCardDetail":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"features":{"items":{"type":"string"},"type":"array","title":"Features","default":[]},"object_types":{"items":{"type":"string"},"type":"array","title":"Object Types","default":[]},"provider_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Type"},"attributes":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Attributes","default":{}},"locations":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Locations"},"price_min":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Min"},"price_max":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Max"},"price_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Currency"},"price_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Unit"},"price_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Notes"},"contacts":{"additionalProperties":true,"type":"object","title":"Contacts"},"social_stats":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Social Stats"},"rating_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating Avg"},"review_count":{"type":"integer","title":"Review Count"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["id","name","description","categories","tags","locations","price_min","price_max","price_currency","price_notes","contacts","social_stats","rating_avg","review_count","updated_at"],"title":"ServiceCardDetail"},"ServiceCardItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"locations":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Locations"},"rating_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating Avg"},"review_count":{"type":"integer","title":"Review Count"}},"type":"object","required":["id","name","categories","locations","rating_avg","review_count"],"title":"ServiceCardItem"},"ServiceCategoryCreate":{"properties":{"slug":{"type":"string","title":"Slug"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"labels":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Labels"},"parent_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Slug"},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["slug"],"title":"ServiceCategoryCreate"},"ServiceCategoryOut":{"properties":{"slug":{"type":"string","title":"Slug"},"label":{"type":"string","title":"Label"},"labels":{"additionalProperties":{"type":"string"},"type":"object","title":"Labels","default":{}},"parent_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Slug"},"sort_order":{"type":"integer","title":"Sort Order"},"status":{"type":"string","title":"Status"},"service_count":{"type":"integer","title":"Service Count","default":0},"direct_service_count":{"type":"integer","title":"Direct Service Count","default":0},"subtree_service_count":{"type":"integer","title":"Subtree Service Count","default":0}},"type":"object","required":["slug","label","parent_slug","sort_order","status"],"title":"ServiceCategoryOut"},"ServiceCategoryUpdate":{"properties":{"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"labels":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Labels"},"parent_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Slug"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"}},"type":"object","title":"ServiceCategoryUpdate"},"ServiceClaimRequestOut":{"properties":{"id":{"type":"string","title":"Id"},"service_provider_id":{"type":"string","title":"Service Provider Id"},"service_provider_name":{"type":"string","title":"Service Provider Name"},"service_provider_contacts":{"additionalProperties":true,"type":"object","title":"Service Provider Contacts"},"business_id":{"type":"string","title":"Business Id"},"business_name":{"type":"string","title":"Business Name"},"pwa_user_id":{"type":"string","title":"Pwa User Id"},"telegram_id":{"type":"integer","title":"Telegram Id"},"user_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Name"},"evidence_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Phone"},"evidence_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Url"},"evidence_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Email"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","title":"Created At"},"reviewed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewed At"},"reviewed_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewed By"},"review_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Reason"}},"type":"object","required":["id","service_provider_id","service_provider_name","service_provider_contacts","business_id","business_name","pwa_user_id","telegram_id","user_name","evidence_phone","evidence_url","evidence_email","comment","status","created_at","reviewed_at","reviewed_by","review_reason"],"title":"ServiceClaimRequestOut"},"ServiceContacts":{"properties":{"phones":{"items":{"type":"string"},"type":"array","title":"Phones","default":[]},"emails":{"items":{"type":"string"},"type":"array","title":"Emails","default":[]},"websites":{"items":{"type":"string"},"type":"array","title":"Websites","default":[]},"social_links":{"items":{"$ref":"#/components/schemas/SocialLink"},"type":"array","title":"Social Links","default":[]},"websites_display":{"items":{"type":"string"},"type":"array","title":"Websites Display","default":[]}},"type":"object","title":"ServiceContacts"},"ServiceCreate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories","default":[]},"custom_categories":{"items":{"$ref":"#/components/schemas/CustomCategoryInput"},"type":"array","title":"Custom Categories","default":[]},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"features":{"items":{"type":"string"},"type":"array","title":"Features","default":[]},"object_types":{"items":{"type":"string"},"type":"array","title":"Object Types","default":[]},"provider_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Type"},"attributes":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Attributes","default":{}},"locations":{"items":{"$ref":"#/components/schemas/ServiceLocation"},"type":"array","title":"Locations","default":[]},"price_min":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Min"},"price_max":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Max"},"price_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Currency"},"price_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Unit"},"price_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Notes"},"contacts":{"$ref":"#/components/schemas/ServiceContacts","default":{"phones":[],"emails":[],"websites":[],"social_links":[],"websites_display":[]}}},"type":"object","required":["name"],"title":"ServiceCreate"},"ServiceFacetValueOut":{"properties":{"code":{"type":"string","title":"Code"},"label":{"type":"string","title":"Label"}},"type":"object","required":["code","label"],"title":"ServiceFacetValueOut","description":"Значение фасета или характеристики (#335, #455)."},"ServiceFacetsOut":{"properties":{"object_types":{"items":{"$ref":"#/components/schemas/ServiceFacetValueOut"},"type":"array","title":"Object Types"},"provider_types":{"items":{"$ref":"#/components/schemas/ServiceFacetValueOut"},"type":"array","title":"Provider Types"},"price_units":{"items":{"$ref":"#/components/schemas/ServiceFacetValueOut"},"type":"array","title":"Price Units","default":[]}},"type":"object","required":["object_types","provider_types"],"title":"ServiceFacetsOut","description":"Закрытые справочники для форм: фасеты (#335) и единицы цены (#343)."},"ServiceFeatureOut":{"properties":{"code":{"type":"string","title":"Code"},"label":{"type":"string","title":"Label"}},"type":"object","required":["code","label"],"title":"ServiceFeatureOut","description":"Пункт закрытого справочника условий работы (#339)."},"ServiceHubResponse":{"properties":{"total":{"type":"integer","title":"Total"},"top":{"items":{"$ref":"#/components/schemas/ServiceOut"},"type":"array","title":"Top"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"}},"type":"object","required":["total","top","tags","categories"],"title":"ServiceHubResponse","description":"Витрина каталога специалистов: топ, теги и категории по всей базе."},"ServiceImageCreate":{"properties":{"url":{"type":"string","title":"Url"},"kind":{"type":"string","title":"Kind","default":"work"},"caption":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caption"},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["url"],"title":"ServiceImageCreate"},"ServiceImageOut":{"properties":{"id":{"type":"string","title":"Id"},"url":{"type":"string","title":"Url"},"kind":{"type":"string","title":"Kind"},"caption":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caption"}},"type":"object","required":["id","url","kind"],"title":"ServiceImageOut","description":"Изображение карточки: логотип отдаётся отдельным полем (#355)."},"ServiceImageUpdate":{"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"},"caption":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caption"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"}},"type":"object","title":"ServiceImageUpdate"},"ServiceImportCheckRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConflictCheckItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ServiceImportCheckRequest"},"ServiceImportExecuteRequest":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/ServiceImportRow"},"type":"array","title":"Rows"}},"type":"object","required":["rows"],"title":"ServiceImportExecuteRequest"},"ServiceImportItem":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories","default":[]},"custom_categories":{"items":{"$ref":"#/components/schemas/CustomCategoryInput"},"type":"array","title":"Custom Categories","default":[]},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"features":{"items":{"type":"string"},"type":"array","title":"Features","default":[]},"object_types":{"items":{"type":"string"},"type":"array","title":"Object Types","default":[]},"provider_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Type"},"attributes":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Attributes","default":{}},"locations":{"items":{"$ref":"#/components/schemas/ServiceLocation"},"type":"array","title":"Locations","default":[]},"price_min":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Min"},"price_max":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Max"},"price_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Currency"},"price_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Unit"},"price_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Notes"},"contacts":{"$ref":"#/components/schemas/ServiceContacts","default":{"phones":[],"emails":[],"websites":[],"social_links":[],"websites_display":[]}}},"type":"object","required":["name"],"title":"ServiceImportItem"},"ServiceImportRow":{"properties":{"index":{"type":"integer","title":"Index"},"data":{"$ref":"#/components/schemas/ServiceImportItem"},"conflict_action":{"type":"string","enum":["overwrite","update","skip"],"title":"Conflict Action","default":"skip"},"field_mask":{"items":{"type":"string"},"type":"array","title":"Field Mask","default":[]}},"type":"object","required":["index","data"],"title":"ServiceImportRow"},"ServiceListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"items":{"items":{"$ref":"#/components/schemas/ServiceOut"},"type":"array","title":"Items"}},"type":"object","required":["total","page","page_size","items"],"title":"ServiceListResponse"},"ServiceLocation":{"properties":{"country":{"type":"string","title":"Country"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District"}},"type":"object","required":["country"],"title":"ServiceLocation"},"ServiceMergeSuggestionListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"items":{"items":{"$ref":"#/components/schemas/ServiceMergeSuggestionOut"},"type":"array","title":"Items"}},"type":"object","required":["total","page","page_size","items"],"title":"ServiceMergeSuggestionListResponse"},"ServiceMergeSuggestionOut":{"properties":{"id":{"type":"string","title":"Id"},"service_a":{"$ref":"#/components/schemas/ServiceSummary"},"service_b":{"$ref":"#/components/schemas/ServiceSummary"},"similarity_score":{"type":"number","title":"Similarity Score"},"status":{"type":"string","title":"Status"},"suggested_at":{"type":"string","format":"date-time","title":"Suggested At"},"reviewed_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewed By"},"reviewed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reviewed At"}},"type":"object","required":["id","service_a","service_b","similarity_score","status","suggested_at","reviewed_by","reviewed_at"],"title":"ServiceMergeSuggestionOut"},"ServiceOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"features":{"items":{"type":"string"},"type":"array","title":"Features","default":[]},"object_types":{"items":{"type":"string"},"type":"array","title":"Object Types","default":[]},"provider_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Type"},"attributes":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Attributes","default":{}},"locations":{"items":{"$ref":"#/components/schemas/ServiceLocation"},"type":"array","title":"Locations"},"price_min":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Min"},"price_max":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Max"},"price_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Currency"},"price_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Unit"},"price_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Notes"},"contacts":{"$ref":"#/components/schemas/ServiceContacts"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"images":{"items":{"$ref":"#/components/schemas/ServiceImageOut"},"type":"array","title":"Images","default":[]},"social_stats":{"items":{"$ref":"#/components/schemas/SocialStats"},"type":"array","title":"Social Stats"},"rating_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating Avg"},"review_count":{"type":"integer","title":"Review Count"},"positive_count":{"type":"integer","title":"Positive Count"},"is_claimed":{"type":"boolean","title":"Is Claimed"},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"can_edit":{"type":"boolean","title":"Can Edit","default":false},"team_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Team Count"},"response_hours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Response Hours"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"status":{"type":"string","title":"Status","default":"published"},"missing_for_publication":{"items":{"type":"string"},"type":"array","title":"Missing For Publication","default":[]},"matched_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Matched Category"},"match_direct":{"type":"boolean","title":"Match Direct","default":false},"custom_categories":{"items":{"$ref":"#/components/schemas/CustomCategoryOut"},"type":"array","title":"Custom Categories","default":[]}},"type":"object","required":["id","name","description","categories","tags","locations","price_min","price_max","price_currency","price_notes","contacts","social_stats","rating_avg","review_count","positive_count","is_claimed","created_at"],"title":"ServiceOut"},"ServiceProviderSearchItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"is_claimed":{"type":"boolean","title":"Is Claimed"}},"type":"object","required":["id","name","categories","is_claimed"],"title":"ServiceProviderSearchItem"},"ServicePublicStats":{"properties":{"service_id":{"type":"string","title":"Service Id"},"period_days":{"type":"integer","title":"Period Days"},"views":{"type":"integer","title":"Views"}},"type":"object","required":["service_id","period_days","views"],"title":"ServicePublicStats"},"ServiceResponseStats":{"properties":{"sla_hours":{"type":"integer","title":"Sla Hours"},"services_with_data":{"type":"integer","title":"Services With Data"},"services_total":{"type":"integer","title":"Services Total"},"median_hours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Median Hours"},"slower_than_sla":{"type":"integer","title":"Slower Than Sla"},"leads_awaiting_response":{"type":"integer","title":"Leads Awaiting Response"},"leads_reminded":{"type":"integer","title":"Leads Reminded"}},"type":"object","required":["sla_hours","services_with_data","services_total","median_hours","slower_than_sla","leads_awaiting_response","leads_reminded"],"title":"ServiceResponseStats","description":"Скорость ответа исполнителей по каталогу (#317)."},"ServiceStatsOut":{"properties":{"card_views":{"type":"integer","title":"Card Views"},"contact_clicks":{"type":"integer","title":"Contact Clicks"},"chart_data":{"items":{"$ref":"#/components/schemas/ChartPoint"},"type":"array","title":"Chart Data"},"top_card":{"anyOf":[{"$ref":"#/components/schemas/TopObject"},{"type":"null"}]}},"type":"object","required":["card_views","contact_clicks","chart_data","top_card"],"title":"ServiceStatsOut"},"ServiceSummary":{"properties":{"service_id":{"type":"string","title":"Service Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"categories":{"items":{},"type":"array","title":"Categories"},"tags":{"items":{},"type":"array","title":"Tags"},"phones":{"items":{},"type":"array","title":"Phones"},"social_handles":{"items":{},"type":"array","title":"Social Handles"},"review_count":{"type":"integer","title":"Review Count"},"business_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Id"}},"type":"object","required":["service_id","name","description","categories","tags","phones","social_handles","review_count","business_id"],"title":"ServiceSummary"},"ServiceTokenCreate":{"properties":{"label":{"type":"string","maxLength":256,"minLength":1,"title":"Label"}},"type":"object","required":["label"],"title":"ServiceTokenCreate"},"ServiceTokenCreateOut":{"properties":{"id":{"type":"string","title":"Id"},"token":{"type":"string","title":"Token"},"label":{"type":"string","title":"Label"}},"type":"object","required":["id","token","label"],"title":"ServiceTokenCreateOut"},"ServiceUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Categories"},"custom_categories":{"items":{"$ref":"#/components/schemas/CustomCategoryInput"},"type":"array","title":"Custom Categories","default":[]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"features":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Features"},"object_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Object Types"},"provider_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Type"},"attributes":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Attributes"},"locations":{"anyOf":[{"items":{"$ref":"#/components/schemas/ServiceLocation"},"type":"array"},{"type":"null"}],"title":"Locations"},"price_min":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Min"},"price_max":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Price Max"},"price_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Currency"},"price_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Unit"},"price_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Notes"},"contacts":{"anyOf":[{"$ref":"#/components/schemas/ServiceContacts"},{"type":"null"}]}},"type":"object","title":"ServiceUpdate"},"ShareUrlsRequest":{"properties":{"channels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Channels"}},"type":"object","title":"ShareUrlsRequest"},"SocialLink":{"properties":{"platform":{"type":"string","title":"Platform"},"url":{"type":"string","title":"Url"},"handle":{"type":"string","title":"Handle"},"target_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Url"}},"type":"object","required":["platform","url","handle"],"title":"SocialLink"},"SocialStats":{"properties":{"platform":{"type":"string","title":"Platform"},"followers_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Followers Count"},"last_fetched_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Fetched At"}},"type":"object","required":["platform"],"title":"SocialStats"},"SortField":{"properties":{"field":{"type":"string","title":"Field"},"direction":{"type":"string","title":"Direction","default":"asc"}},"type":"object","required":["field"],"title":"SortField"},"StaleDeveloperItem":{"properties":{"developer_slug":{"type":"string","title":"Developer Slug"},"page_views":{"type":"integer","title":"Page Views"},"last_event_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Event At"}},"type":"object","required":["developer_slug","page_views","last_event_at"],"title":"StaleDeveloperItem"},"StatsOut":{"properties":{"object_views":{"type":"integer","title":"Object Views"},"favorites_count":{"type":"integer","title":"Favorites Count"},"developer_page_views":{"type":"integer","title":"Developer Page Views"},"chart_data":{"items":{"$ref":"#/components/schemas/ChartPoint"},"type":"array","title":"Chart Data"},"top_objects":{"items":{"$ref":"#/components/schemas/TopObject"},"type":"array","title":"Top Objects"}},"type":"object","required":["object_views","favorites_count","developer_page_views","chart_data","top_objects"],"title":"StatsOut"},"StatsResponse":{"properties":{"total_objects":{"type":"integer","title":"Total Objects"},"total_developers":{"type":"integer","title":"Total Developers"},"registration_open_count":{"type":"integer","title":"Registration Open Count"},"events_last_24h":{"type":"integer","title":"Events Last 24H"},"events_last_7d":{"type":"integer","title":"Events Last 7D"},"events_last_30d":{"type":"integer","title":"Events Last 30D"},"by_developer":{"items":{"$ref":"#/components/schemas/DeveloperStats"},"type":"array","title":"By Developer"},"event_activity_30d":{"items":{"$ref":"#/components/schemas/EventActivityPoint"},"type":"array","title":"Event Activity 30D"}},"type":"object","required":["total_objects","total_developers","registration_open_count","events_last_24h","events_last_7d","events_last_30d","by_developer","event_activity_30d"],"title":"StatsResponse"},"SubmissionOut":{"properties":{"id":{"type":"string","title":"Id"},"slug":{"type":"string","title":"Slug"},"version":{"type":"string","title":"Version"},"runtime":{"type":"string","title":"Runtime"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","slug","version","runtime","status","created_at"],"title":"SubmissionOut"},"SubmissionStatusOut":{"properties":{"status":{"type":"string","title":"Status"},"review_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Notes"}},"type":"object","required":["status","review_notes"],"title":"SubmissionStatusOut"},"SubmitIn":{"properties":{"manifest":{"additionalProperties":true,"type":"object","title":"Manifest"},"declaration_json":{"type":"string","title":"Declaration Json"}},"type":"object","required":["manifest","declaration_json"],"title":"SubmitIn"},"SubmitOut":{"properties":{"submission_id":{"type":"string","title":"Submission Id"},"status":{"type":"string","title":"Status"}},"type":"object","required":["submission_id","status"],"title":"SubmitOut"},"SubscribeRequest":{"properties":{"endpoint":{"type":"string","title":"Endpoint"},"p256dh":{"type":"string","title":"P256Dh"},"auth":{"type":"string","title":"Auth"}},"type":"object","required":["endpoint","p256dh","auth"],"title":"SubscribeRequest"},"SuggestionItem":{"properties":{"text":{"type":"string","title":"Text"},"kind":{"type":"string","title":"Kind"}},"type":"object","required":["text","kind"],"title":"SuggestionItem"},"SuggestionListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/FieldSuggestionOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"SuggestionListOut"},"SuggestionOut":{"properties":{"id":{"type":"integer","title":"Id"},"task_code":{"type":"string","title":"Task Code"},"run_id":{"type":"string","title":"Run Id"},"entity_type":{"type":"string","title":"Entity Type"},"suggestion_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suggestion Type"},"target_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Id"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"raw_reasoning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Raw Reasoning"},"status":{"type":"string","title":"Status"},"reviewed_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewed By"},"reviewed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reviewed At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","task_code","run_id","entity_type","payload","raw_reasoning","status","reviewed_by","reviewed_at","created_at"],"title":"SuggestionOut"},"SuggestionsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SuggestionItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"SuggestionsResponse"},"TagOperationResult":{"properties":{"services":{"type":"integer","title":"Services"}},"type":"object","required":["services"],"title":"TagOperationResult","description":"Сколько карточек затронула операция."},"TagRenameRequest":{"properties":{"source":{"type":"string","maxLength":100,"minLength":1,"title":"Source"},"target":{"type":"string","maxLength":100,"minLength":1,"title":"Target"}},"type":"object","required":["source","target"],"title":"TagRenameRequest"},"TagSuggestion":{"properties":{"tag":{"type":"string","title":"Tag"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["tag","count"],"title":"TagSuggestion","description":"Тег словаря со счётчиком использований (#339)."},"TaskConfigCreate":{"properties":{"task_code":{"type":"string","title":"Task Code"},"display_name":{"type":"string","title":"Display Name"},"provider_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Provider Id"},"cron_expression":{"type":"string","title":"Cron Expression"},"is_active":{"type":"boolean","title":"Is Active","default":true},"system_prompt":{"type":"string","title":"System Prompt"},"user_prompt_tmpl":{"type":"string","title":"User Prompt Tmpl"},"max_turns":{"type":"integer","title":"Max Turns","default":10},"max_results_per_run":{"type":"integer","title":"Max Results Per Run","default":20},"tools_enabled":{"items":{},"type":"array","title":"Tools Enabled","default":[]}},"type":"object","required":["task_code","display_name","cron_expression","system_prompt","user_prompt_tmpl"],"title":"TaskConfigCreate"},"TaskConfigOut":{"properties":{"id":{"type":"integer","title":"Id"},"task_code":{"type":"string","title":"Task Code"},"display_name":{"type":"string","title":"Display Name"},"provider_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Provider Id"},"cron_expression":{"type":"string","title":"Cron Expression"},"is_active":{"type":"boolean","title":"Is Active"},"system_prompt":{"type":"string","title":"System Prompt"},"user_prompt_tmpl":{"type":"string","title":"User Prompt Tmpl"},"max_turns":{"type":"integer","title":"Max Turns"},"max_results_per_run":{"type":"integer","title":"Max Results Per Run"},"tools_enabled":{"items":{},"type":"array","title":"Tools Enabled"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","task_code","display_name","provider_id","cron_expression","is_active","system_prompt","user_prompt_tmpl","max_turns","max_results_per_run","tools_enabled","created_at","updated_at"],"title":"TaskConfigOut"},"TeamTemplateOut":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"roles":{"items":{"type":"string"},"type":"array","title":"Roles"}},"type":"object","required":["slug","name","description","roles"],"title":"TeamTemplateOut"},"TelegramAuthPayload":{"properties":{"id":{"type":"integer","title":"Id"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"},"auth_date":{"type":"integer","title":"Auth Date"},"hash":{"type":"string","title":"Hash"},"persona":{"type":"string","title":"Persona"}},"type":"object","required":["id","auth_date","hash","persona"],"title":"TelegramAuthPayload"},"TelegramAuthRequest":{"properties":{"id":{"type":"integer","title":"Id"},"first_name":{"type":"string","title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"},"auth_date":{"type":"integer","title":"Auth Date"},"hash":{"type":"string","title":"Hash"}},"type":"object","required":["id","first_name","auth_date","hash"],"title":"TelegramAuthRequest"},"TelegramInitDataPayload":{"properties":{"initData":{"type":"string","title":"Initdata"},"persona":{"type":"string","title":"Persona"}},"type":"object","required":["initData","persona"],"title":"TelegramInitDataPayload"},"TelegramOidcAuthRequest":{"properties":{"code":{"type":"string","title":"Code"},"code_verifier":{"type":"string","title":"Code Verifier"},"redirect_uri":{"type":"string","title":"Redirect Uri"}},"type":"object","required":["code","code_verifier","redirect_uri"],"title":"TelegramOidcAuthRequest"},"TelegramOidcPayload":{"properties":{"code":{"type":"string","title":"Code"},"code_verifier":{"type":"string","title":"Code Verifier"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"persona":{"type":"string","title":"Persona"}},"type":"object","required":["code","code_verifier","redirect_uri","persona"],"title":"TelegramOidcPayload"},"TemplateCreate":{"properties":{"category":{"type":"string","title":"Category"},"title":{"type":"string","title":"Title"},"unit":{"type":"string","title":"Unit","default":"fixed"},"unit_price":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Unit Price"},"currency":{"type":"string","title":"Currency","default":"BYN"},"sort_order":{"type":"integer","title":"Sort Order","default":0},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["category","title","unit_price"],"title":"TemplateCreate"},"TemplateOut":{"properties":{"id":{"type":"string","title":"Id"},"category":{"type":"string","title":"Category"},"title":{"type":"string","title":"Title"},"unit":{"type":"string","title":"Unit"},"unit_price":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Unit Price"},"currency":{"type":"string","title":"Currency"},"sort_order":{"type":"integer","title":"Sort Order"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","category","title","unit","unit_price","currency","sort_order","is_active","created_at"],"title":"TemplateOut"},"TemplateUpdate":{"properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit"},"unit_price":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Unit Price"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"TemplateUpdate"},"TestParseObjectOut":{"properties":{"external_id":{"type":"string","title":"External Id"},"title":{"type":"string","title":"Title"},"raw_url":{"type":"string","title":"Raw Url"},"object_type":{"type":"string","title":"Object Type"}},"type":"object","required":["external_id","title","raw_url","object_type"],"title":"TestParseObjectOut"},"TestParseRegOut":{"properties":{"external_id":{"type":"string","title":"External Id"},"registration_open":{"type":"boolean","title":"Registration Open"},"registration_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Url"}},"type":"object","required":["external_id","registration_open"],"title":"TestParseRegOut"},"TestParseRequest":{"properties":{"adapter_type":{"type":"string","title":"Adapter Type","default":"ghb"},"adapter_config":{"additionalProperties":true,"type":"object","title":"Adapter Config","default":{}},"parse_mode":{"type":"string","title":"Parse Mode","default":"catalog"}},"type":"object","title":"TestParseRequest"},"TestParseResponse":{"properties":{"ok":{"type":"boolean","title":"Ok"},"objects_count":{"type":"integer","title":"Objects Count","default":0},"objects":{"items":{"$ref":"#/components/schemas/TestParseObjectOut"},"type":"array","title":"Objects","default":[]},"registrations":{"items":{"$ref":"#/components/schemas/TestParseRegOut"},"type":"array","title":"Registrations","default":[]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["ok"],"title":"TestParseResponse"},"TgNotificationsRequest":{"properties":{"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"events":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Events"}},"type":"object","title":"TgNotificationsRequest"},"ThreadsAccountInsights":{"properties":{"account_id":{"type":"string","title":"Account Id"},"username":{"type":"string","title":"Username"},"threads_user_id":{"type":"string","title":"Threads User Id"},"enabled":{"type":"boolean","title":"Enabled"},"latest":{"anyOf":[{"$ref":"#/components/schemas/ThreadsAccountMetricPoint"},{"type":"null"}]},"history":{"items":{"$ref":"#/components/schemas/ThreadsAccountMetricPoint"},"type":"array","title":"History"},"posts_tracked":{"type":"integer","title":"Posts Tracked"},"engagement_total":{"type":"integer","title":"Engagement Total"},"top_posts":{"items":{"$ref":"#/components/schemas/ThreadsTopPost"},"type":"array","title":"Top Posts"}},"type":"object","required":["account_id","username","threads_user_id","enabled","latest","history","posts_tracked","engagement_total","top_posts"],"title":"ThreadsAccountInsights"},"ThreadsAccountMetricPoint":{"properties":{"snapshot_date":{"type":"string","format":"date","title":"Snapshot Date"},"views":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Views"},"likes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Likes"},"replies":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Replies"},"reposts":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reposts"},"quotes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quotes"},"clicks":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Clicks"},"followers_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Followers Count"}},"type":"object","required":["snapshot_date","views","likes","replies","reposts","quotes","clicks","followers_count"],"title":"ThreadsAccountMetricPoint"},"ThreadsTopPost":{"properties":{"post_id":{"type":"string","title":"Post Id"},"published_at":{"type":"string","format":"date-time","title":"Published At"},"likes":{"type":"integer","title":"Likes"},"replies":{"type":"integer","title":"Replies"},"reposts":{"type":"integer","title":"Reposts"},"quotes":{"type":"integer","title":"Quotes"}},"type":"object","required":["post_id","published_at","likes","replies","reposts","quotes"],"title":"ThreadsTopPost"},"TokenCreate":{"properties":{"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},"type":"object","title":"TokenCreate"},"TokenOut":{"properties":{"id":{"type":"string","title":"Id"},"token":{"type":"string","title":"Token"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"type":"object","required":["id","token","label"],"title":"TokenOut"},"TokenResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"chat_id":{"type":"integer","title":"Chat Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["access_token","chat_id","name"],"title":"TokenResponse"},"TopObject":{"properties":{"external_id":{"type":"string","title":"External Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"views":{"type":"integer","title":"Views"}},"type":"object","required":["external_id","title","views"],"title":"TopObject"},"TrafficSourceItem":{"properties":{"source":{"type":"string","title":"Source"},"medium":{"type":"string","title":"Medium"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["source","medium","count"],"title":"TrafficSourceItem"},"TrafficSourcesBreakdown":{"properties":{"period_days":{"type":"integer","title":"Period Days"},"total":{"type":"integer","title":"Total"},"sources":{"items":{"$ref":"#/components/schemas/TrafficSourceItem"},"type":"array","title":"Sources"}},"type":"object","required":["period_days","total","sources"],"title":"TrafficSourcesBreakdown"},"TrendPoint":{"properties":{"date":{"type":"string","title":"Date"},"value":{"type":"number","title":"Value"}},"type":"object","required":["date","value"],"title":"TrendPoint"},"TrendingObjectEntry":{"properties":{"object":{"$ref":"#/components/schemas/ObjectItem"},"views_7d":{"type":"integer","title":"Views 7D"},"growth_pct":{"type":"number","title":"Growth Pct"}},"type":"object","required":["object","views_7d","growth_pct"],"title":"TrendingObjectEntry"},"UaBreakdown":{"properties":{"browser":{"type":"integer","title":"Browser"},"bot":{"type":"integer","title":"Bot"},"library":{"type":"integer","title":"Library"},"unknown":{"type":"integer","title":"Unknown"}},"type":"object","required":["browser","bot","library","unknown"],"title":"UaBreakdown"},"UpdateRedirectBody":{"properties":{"new_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"New Token"},"destination_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Destination Url"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"UpdateRedirectBody"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerificationBody":{"properties":{"evidence_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Phone"},"evidence_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Url"},"evidence_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Email"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"type":"object","title":"VerificationBody","description":"Заявка на верификацию компании (#316).\n\nДоказательства те же, что у claim карточки, но предмет другой: claim —\nправа на конкретную карточку, верификация — статус компании целиком."},"VersionResponse":{"properties":{"version":{"type":"string","title":"Version"},"released_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Released At"},"notes_ru":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes Ru"},"history":{"items":{"$ref":"#/components/schemas/ReleaseNoteOut"},"type":"array","title":"History"}},"type":"object","required":["version","released_at","notes_ru","history"],"title":"VersionResponse"},"VoteBody":{"properties":{"approve":{"type":"boolean","title":"Approve"}},"type":"object","required":["approve"],"title":"VoteBody"},"WeeklyDigestSettingsRequest":{"properties":{"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["enabled"],"title":"WeeklyDigestSettingsRequest"},"src__api__routers__admin__business_verification__VerificationRequestOut":{"properties":{"id":{"type":"string","title":"Id"},"business_id":{"type":"string","title":"Business Id"},"business_name":{"type":"string","title":"Business Name"},"business_slug":{"type":"string","title":"Business Slug"},"pwa_user_id":{"type":"string","title":"Pwa User Id"},"telegram_id":{"type":"integer","title":"Telegram Id"},"user_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Name"},"evidence_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Phone"},"evidence_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Url"},"evidence_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Email"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","title":"Created At"},"reviewed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewed At"},"reviewed_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewed By"},"review_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Reason"}},"type":"object","required":["id","business_id","business_name","business_slug","pwa_user_id","telegram_id","user_name","evidence_phone","evidence_url","evidence_email","comment","status","created_at","reviewed_at","reviewed_by","review_reason"],"title":"VerificationRequestOut"},"src__api__routers__admin__claim_requests__ClaimRequestOut":{"properties":{"id":{"type":"string","title":"Id"},"pwa_user_id":{"type":"string","title":"Pwa User Id"},"telegram_id":{"type":"integer","title":"Telegram Id"},"user_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Name"},"developer_id":{"type":"string","title":"Developer Id"},"developer_name":{"type":"string","title":"Developer Name"},"developer_slug":{"type":"string","title":"Developer Slug"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","title":"Created At"},"reviewed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewed At"},"reviewed_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewed By"}},"type":"object","required":["id","pwa_user_id","telegram_id","user_name","developer_id","developer_name","developer_slug","comment","status","created_at","reviewed_at","reviewed_by"],"title":"ClaimRequestOut"},"src__api__routers__admin__merge_suggestions__ApproveBody":{"properties":{"canonical_object_id":{"type":"string","title":"Canonical Object Id"}},"type":"object","required":["canonical_object_id"],"title":"ApproveBody"},"src__api__routers__admin__service_merge_suggestions__ApproveBody":{"properties":{"canonical_service_id":{"type":"string","title":"Canonical Service Id"}},"type":"object","required":["canonical_service_id"],"title":"ApproveBody"},"src__api__routers__admin__service_reviews__AdminReviewOut":{"properties":{"id":{"type":"string","title":"Id"},"service_id":{"type":"string","title":"Service Id"},"rating":{"type":"integer","title":"Rating"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"hidden_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Hidden At"},"hidden_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hidden Reason"},"business_reply":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Reply"},"reports":{"items":{"$ref":"#/components/schemas/ReviewReportOut"},"type":"array","title":"Reports"}},"type":"object","required":["id","service_id","rating","text","created_at","hidden_at","hidden_reason","business_reply","reports"],"title":"AdminReviewOut"},"src__api__routers__admin_mods__AdminReviewOut":{"properties":{"id":{"type":"string","title":"Id"},"mod_slug":{"type":"string","title":"Mod Slug"},"user_id":{"type":"string","title":"User Id"},"rating":{"type":"integer","title":"Rating"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"is_deleted":{"type":"boolean","title":"Is Deleted"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","mod_slug","user_id","rating","text","is_deleted","created_at"],"title":"AdminReviewOut"},"src__api__routers__admin_mods__InstallOut":{"properties":{"user_id":{"type":"string","title":"User Id"},"version":{"type":"string","title":"Version"},"accepted_at":{"type":"string","title":"Accepted At"}},"type":"object","required":["user_id","version","accepted_at"],"title":"InstallOut"},"src__api__routers__developers__ReviewListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"rating_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating Avg"},"items":{"items":{"$ref":"#/components/schemas/src__api__routers__developers__ReviewOut"},"type":"array","title":"Items"}},"type":"object","required":["total","rating_avg","items"],"title":"ReviewListResponse"},"src__api__routers__developers__ReviewOut":{"properties":{"id":{"type":"string","title":"Id"},"rating":{"type":"integer","title":"Rating"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","rating","text","created_at"],"title":"ReviewOut"},"src__api__routers__mods__InstallOut":{"properties":{"token":{"type":"string","title":"Token"},"install_id":{"type":"string","title":"Install Id"},"version":{"type":"string","title":"Version"}},"type":"object","required":["token","install_id","version"],"title":"InstallOut"},"src__api__routers__mods__ReviewOut":{"properties":{"id":{"type":"string","title":"Id"},"rating":{"type":"integer","title":"Rating"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"author_name":{"type":"string","title":"Author Name"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","rating","text","author_name","created_at"],"title":"ReviewOut"},"src__api__routers__pwa_developer__MemberOut":{"properties":{"membership_id":{"type":"string","title":"Membership Id"},"pwa_user_id":{"type":"string","title":"Pwa User Id"},"telegram_id":{"type":"integer","title":"Telegram Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"joined_at":{"type":"string","title":"Joined At"}},"type":"object","required":["membership_id","pwa_user_id","telegram_id","name","joined_at"],"title":"MemberOut"},"src__api__routers__pwa_leads__LeadMessageOut":{"properties":{"id":{"type":"string","title":"Id"},"sender_type":{"type":"string","title":"Sender Type"},"body":{"type":"string","title":"Body"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","sender_type","body","created_at"],"title":"LeadMessageOut"},"src__api__routers__pwa_project_members__MemberOut":{"properties":{"user_id":{"type":"string","title":"User Id"},"role":{"type":"string","title":"Role"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"},"created_at":{"type":"string","title":"Created At"},"business_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Slug"},"business_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Name"}},"type":"object","required":["user_id","role","name","username","photo_url","created_at"],"title":"MemberOut"},"src__api__routers__pwa_service_business__ClaimRequestOut":{"properties":{"id":{"type":"string","title":"Id"},"service_provider_id":{"type":"string","title":"Service Provider Id"},"service_provider_name":{"type":"string","title":"Service Provider Name"},"business_id":{"type":"string","title":"Business Id"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","service_provider_id","service_provider_name","business_id","status","created_at"],"title":"ClaimRequestOut"},"src__api__routers__pwa_service_business__LeadMessageOut":{"properties":{"id":{"type":"string","title":"Id"},"sender_type":{"type":"string","title":"Sender Type"},"body":{"type":"string","title":"Body"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","sender_type","body","created_at"],"title":"LeadMessageOut"},"src__api__routers__pwa_service_business__VerificationRequestOut":{"properties":{"id":{"type":"string","title":"Id"},"business_id":{"type":"string","title":"Business Id"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","title":"Created At"},"reviewed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewed At"},"review_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Reason"}},"type":"object","required":["id","business_id","status","created_at"],"title":"VerificationRequestOut"},"src__services_catalog__schemas__ReviewListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"rating_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating Avg"},"items":{"items":{"$ref":"#/components/schemas/src__services_catalog__schemas__ReviewOut"},"type":"array","title":"Items"}},"type":"object","required":["total","rating_avg","items"],"title":"ReviewListResponse"},"src__services_catalog__schemas__ReviewOut":{"properties":{"id":{"type":"string","title":"Id"},"rating":{"type":"integer","title":"Rating"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"can_delete":{"type":"boolean","title":"Can Delete","default":false},"business_reply":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Reply"},"business_reply_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Business Reply At"}},"type":"object","required":["id","rating","text","created_at"],"title":"ReviewOut"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"},"HTTPBearer":{"type":"http","scheme":"bearer"}}}}