Модерация объекта недвижимости
При подаче объекта через API он отправляется на модерацию менеджеру MLS. Если объект содержит неразрешённые элементы справочников (города, районы, ЖК, не найденные через fuzzy search), менеджер сначала согласует каждый справочник, а затем — сам объект.
Сценарий без неразрешённых справочников
sequenceDiagram
participant ЛА as Листинг-агент
participant API
participant Bot as MLS Bot
participant М as Менеджер
ЛА->>API: POST /properties
API-->>ЛА: 201 Created
API->>Bot: property.review.request (без unresolved)
Bot->>М: Карточка объекта
М->>Bot: Одобрить / Отклонить
Bot->>API: property.review.decision
Сценарий с неразрешёнными справочниками
sequenceDiagram
participant ЛА as Листинг-агент
participant API
participant Bot as MLS Bot
participant М as Менеджер
ЛА->>API: POST /properties (city: "Алмты")
Note over API: fuzzy search: не найден
API-->>ЛА: 201 Created
API->>Bot: property.review.request + unresolved_refs
Bot->>М: "Не найден: Город — Алмты"
М->>Bot: [Показать справочник]
Bot->>М: Список городов
М->>Bot: [Назад]
М->>Bot: Одобрить / Отклонить (по каждому справочнику)
Bot->>М: Карточка объекта
М->>Bot: Одобрить / Отклонить
Bot->>API: property.review.decision (+ reference_decisions)
Участвующие сообщения
| Шаг | Сообщение | Publisher | Consumer |
|---|---|---|---|
| 1 | property.review.request |
API | MLS Bot |
| 2 | property.review.decision |
MLS Bot | API |
Решения по справочникам
Решения по каждому справочнику (одобрить/отклонить добавление) передаются внутри сообщения property.review.decision в массиве reference_decisions. Отдельного сообщения для справочников нет — API обрабатывает всё в одном сообщении.
Что происходит при одобрении объекта
API выполняет переход в статус approved:
- Одобренные справочники из
reference_decisions— API создаёт новые записи в таблицахcities,districts,residential_complexes - Статус объекта меняется (
property.status.approved) - Если новый статус входит в MLS — публикуется
mls.new_listing
Что происходит при отклонении
API выполняет переход в статус rejected:
- Статус объекта меняется (
property.status.rejected) - Объект не попадает в MLS-каталог
Неразрешённые справочники
При подаче объекта API пытается найти город, район и ЖК через fuzzy search (pg_trgm, порог 0.3). Если совпадение не найдено, элемент попадает в unresolved_references.
Менеджер может:
- Одобрить добавление — API создаст новый элемент справочника
- Отклонить — элемент не будет создан
- Показать справочник — просмотреть существующие записи для сравнения