Документировать автомодерацию (settings/hits/UI). Refs EventHub/EventHubSpec#4

This commit is contained in:
2026-07-17 18:13:43 +03:00
parent c0121c1a40
commit e365e35736
2 changed files with 23 additions and 5 deletions
+11 -2
View File
@@ -118,6 +118,13 @@ EventHub — платформа для управления событиями
- Пользователи могут отправлять жалобы (`report`) на календари, события, отзывы.
- Модераторы могут просматривать жалобы и принимать меры (скрывать контент, блокировать).
- Список запрещённых слов (`banned_word`) для фильтрации контента.
- **Автомодерация** (`logic_automoderation`):
- Настройки (`automod_settings`, singleton): `keyword_action` (`reject` | `flag` | `censor`, default `flag`), `match_mode` (`word_boundary` | `substring`, default `word_boundary`), `report_threshold` (integer ≥ 1, default `3`).
- При create/update calendar (`title`, `description`), event (`title`, `description`), review (`comment`) выполняется scan бан-слов.
- `reject` — сохранение отклоняется (`400`, content banned); `censor` — маскирование `***` + hit в очередь; `flag` — сохранение + soft-hide + hit (`review``hidden`, `event`/`calendar``frozen`, reason `auto:keyword`).
- Порог жалоб: считаются только `pending`; при достижении порога — soft-hide (`auto:report_threshold`) + hit; dismissed/reviewed не учитываются.
- Очередь `automod_hit`: `open` | `approved` | `rejected`; approve восстанавливает сущность, reject оставляет/усиливает блокировку.
- WS админам: `automod_hit`; аудит от системного актора `system`.
- Аудит действий администраторов (`admin_audit`).
### 2.8. Баг-трекер (автоматический)
@@ -146,7 +153,7 @@ EventHub — платформа для управления событиями
#### 2.10.1. Ролевая модель администраторов
- `superadmin` — полный доступ, может управлять другими администраторами.
- `admin` — управление пользователями, контентом, подписками.
- `moderator` — модерация контента (жалобы, отзывы).
- `moderator` — модерация контента (жалобы, отзывы, очередь автомодерации).
- `support` — работа с тикетами.
#### 2.10.2. Эндпоинты для управления ролями и аудитом
@@ -259,7 +266,7 @@ src/
- `POST /v1/reviews` — создать отзыв.
- `GET /v1/reviews` — список отзывов.
- `PUT /v1/reviews/:id` — обновить отзыв.
- `POST /v1/reports` — пожаловаться.
- `POST /v1/reports` — пожаловаться (`target_type`: `event` | `calendar` | `review`).
- `GET /v1/tickets` — тикеты пользователя.
- `POST /v1/tickets` — создать или обновить тикет (дедуп по `error_hash`): body `{ error_message, stacktrace?, context?, source?: frontend|manual }`; ответ 201 (или 429 при rate-limit новых).
- `GET /v1/tickets/:id` — статус тикета.
@@ -275,6 +282,8 @@ src/
- `GET /v1/admin/reports`, `GET /v1/admin/reports/:id` — жалобы.
- `DELETE /v1/admin/reviews/:id` — удалить отзыв.
- `GET /v1/admin/banned-words`, `POST /v1/admin/banned-words` — запрещённые слова.
- `GET /v1/admin/automod/settings`, `PUT /v1/admin/automod/settings` — настройки автомодерации (чтение: admin/moderator; запись: admin/superadmin).
- `GET /v1/admin/automod/hits`, `PUT /v1/admin/automod/hits/:id` — очередь срабатываний (`status`: `approved` | `rejected`; фильтры `status`, `trigger`; доступ: admin/moderator).
- `GET /v1/admin/tickets/stats` — статистика тикетов: `total_tickets`, `open`, `in_progress`, `resolved`, `closed`, `total_errors`.
- `GET /v1/admin/tickets` — список с фильтрами `status`, `source`, `assigned_to`, `q`; `GET /v1/admin/tickets/:id` — управление тикетами.
- `GET /v1/admin/subscriptions`, `POST /v1/admin/subscriptions/:id` — подписки.