Реализованы сервисы ВМ2 - проверка сообщений и синхронизация с Б24 (деплой еще без перевода в боевой режим)

This commit is contained in:
mi
2026-08-13 18:52:42 +03:00
parent 5100ba9fc3
commit 99605b1c77
144 changed files with 15295 additions and 1120 deletions
@@ -65,7 +65,7 @@
- **Новые механики CTA и новые кнопки деталки** сверх перечисленных в §5.3 и §5.4: их добавление требует кода и планируется отдельно.
- Раздел профиля «Документы» / архив оплат — не заменяются уведомлениями. Но документы компании из уведомлений **регистрируются в таблице `documents`**, чтобы будущий раздел профиля собрал их без миграции файлов.
- Запись в `sync_queue` из application-кода: только **триггер БД** (§10.8).
- **Фактическая доставка документов в Bitrix24.** `bitrix-sync` в текущем состоянии — no-op stub, очередь не обрабатывает. В scope этого релиза — только корректная постановка задачи в `sync_queue`; обработка — отдельная работа по `module-07`.
- **Фактическая доставка документов в Bitrix24.** Полный `bitrix-sync` первого релиза по module-07 обрабатывает только Contact; `document.client_uploaded` остаётся вне его scope и не claim-ится. В scope notification-релиза — только корректная постановка задачи в `sync_queue`.
- SMS/email поверх ЛК.
- История чатов как UI-раздел — deprecated; backend API диалогов этим ТЗ не удаляется.
- **Архив `lifecycle_status = closed` в UI v1 — нет.** Записи хранятся в БД бессрочно; ретенция и архивирование закрытых уведомлений не выполняются (§13).
@@ -904,7 +904,7 @@ Unique active `(notification_id, document_id)`. Сами файлы описыв
| `mime_type` | varchar(128) |
| `size_bytes` | bigint, CHECK > 0 |
| `checksum_sha256` | char(64) |
| `scan_status` | varchar(16), CHECK `pending` \| `clean` \| `infected` \| `failed` |
| `scan_status` | varchar(16), CHECK `pending` \| `clean` \| `bypassed` \| `infected` \| `failed`; `bypassed` — только Message Safety MOCK forced allow |
| `storage_bucket` / `object_key` | varchar |
| `quarantine_object_key` | varchar NULL |
| `upload_expires_at` / `completed_at` | timestamptz |
@@ -940,7 +940,7 @@ Unique active `(storage_bucket, object_key)`; unique `source_draft_id`; инде
- Действует общее правило подавления: при `current_setting('han.sync_suppress', true)='true'` задача не создаётся.
- Триггер и бизнес-транзакция — в одной транзакции. Application-код в `sync_queue` не пишет.
- `bitrix_sync_user` получает GRANT на чтение `client_documents` дополнительно к существующим (arch-03).
- Что именно происходит с задачей на стороне CRM — предмет `module-07`; в этом релизе `bitrix-sync` работает как no-op stub, задачи накапливаются в очереди (§3.2).
- Обработка `document.client_uploaded` — отдельное post-MVP расширение module-07; Contact worker не должен claim/ack такие задачи, они продолжают накапливаться в очереди (§3.2).
### 10.9. `notification_sources`