docs: Web Push and notification prefs (Back#75 / Front#71).

This commit is contained in:
2026-08-15 20:37:52 +03:00
parent 515db26a0c
commit 1182568c9d
2 changed files with 13 additions and 4 deletions
+11 -2
View File
@@ -252,7 +252,10 @@ Legacy: прямой `POST /v1/calendars/:id/specialists` **не использ
cancel/decline/expire + email/in-app `waitlist_promoted`. UI join — Front#70. cancel/decline/expire + email/in-app `waitlist_promoted`. UI join — Front#70.
- Серверный logout / revoke session; загрузка файлов avatar/cover — - Серверный logout / revoke session; загрузка файлов avatar/cover —
**сделано** (Back#71); вложения к событию — позже. **сделано** (Back#71); вложения к событию — позже.
- Email-reminder booking — **сделано** (Back#70, §2.6); Web Push / prefs — позже. - Email-reminder booking — **сделано** (Back#70, §2.6); Web Push + prefs —
**сделано** (Back#75): `GET/PUT /v1/notifications/prefs`,
`GET /v1/push/vapid-public-key`, `POST/DELETE /v1/push/subscriptions`;
UI — Front#71.
- `calendar_share` (`read` | `write` | `admin`): низкий приоритет; не путать с follow, - `calendar_share` (`read` | `write` | `admin`): низкий приоритет; не путать с follow,
specialist_invite и платной subscription. User HTTP API и UI — до отдельной задачи specialist_invite и платной subscription. User HTTP API и UI — до отдельной задачи
(таблица в схеме есть, см. §2.1.3). (таблица в схеме есть, см. §2.1.3).
@@ -387,7 +390,13 @@ Legacy: прямой `POST /v1/calendars/:id/specialists` **не использ
клиенту записи и in-app `event_reminder`, если `status=confirmed`, клиенту записи и in-app `event_reminder`, если `status=confirmed`,
`reminder_sent=false`, событие `active` и старт в окне `reminder_sent=false`, событие `active` и старт в окне
`REMINDER_LEAD_HOURS` (default 24). Флаг ставится до отправки (один раз). `REMINDER_LEAD_HOURS` (default 24). Флаг ставится до отправки (один раз).
Шаблон CalenTIQ; ссылка `/c/:calendarId/e/:eventId`. Без prefs / Web Push. Шаблон CalenTIQ; ссылка `/c/:calendarId/e/:eventId`.
Prefs: `user.preferences.notify_email` / `notify_push` (default true);
`GET/PUT /v1/notifications/prefs``{ email, push }`.
Web Push (Back#75): таблица `push_subscription`; VAPID env
`VAPID_PUBLIC_KEY` / `VAPID_PRIVATE_KEY` / `VAPID_SUBJECT`; send на reminder
и waitlist promote (если `notify_push`); 404/410 удаляет subscription.
Verify / invite / reset password — email всегда (не через prefs).
### 2.7. Модерация и безопасность ### 2.7. Модерация и безопасность
- Пользователи могут отправлять жалобы (`report`) на календари, события, отзывы. - Пользователи могут отправлять жалобы (`report`) на календари, события, отзывы.
+2 -2
View File
@@ -374,8 +374,8 @@ legal stubs; позиция по подписке **владельца**; DNS/SP
- серверный logout / revoke session (`POST /v1/logout` + `{ refresh_token }`; клиент зовёт до clear storage) - серверный logout / revoke session (`POST /v1/logout` + `{ refresh_token }`; клиент зовёт до clear storage)
- загрузка файлов: avatar `POST /v1/user/me/avatar`, cover - загрузка файлов: avatar `POST /v1/user/me/avatar`, cover
`POST /v1/calendars/:id/cover` (Back#71); UI — Front#69; вложения — позже `POST /v1/calendars/:id/cover` (Back#71); UI — Front#69; вложения — позже
- полноценный push / reminders (email-reminder booking: Back#70 / - полноценный push / reminders (email-reminder: Back#70; Web Push + prefs:
`process_reminders`; Web Push / prefs — позже) Back#75 / Front#71 — тумблеры в профиле, SW `/sw-push.js`)
- waitlist: API Back#72; включение — чекбокс «Лист ожидания» - waitlist: API Back#72; включение — чекбокс «Лист ожидания»
(`settings.waitlist_enabled`) в настройках commercial; join/leave на (`settings.waitlist_enabled`) в настройках commercial; join/leave на
карточке события при полном слоте — Front#70 карточке события при полном слоте — Front#70