docs(spec): guest has no reports/votes; phrase draft rolls past hour. Refs EventHub/EventHubFront#65

This commit is contained in:
2026-08-14 13:59:43 +03:00
parent 938a022ad8
commit 28e2795199
+6 -2
View File
@@ -155,7 +155,8 @@ CONTROL→bookings. Контент: free gaps / события сегодня /
Владелец: черновики слотов из прошлой ISO-недели в дырах текущей; «Создать неделю» — Владелец: черновики слотов из прошлой ISO-недели в дырах текущей; «Создать неделю» —
preview, затем существующий POST events. После создания черновик снимается сразу preview, затем существующий POST events. После создания черновик снимается сразу
(без F5). Без подтверждения в API не пишем. EventHubAiRouter не используется. (без F5), в том числе если время в форме сдвинули (прошлый час → +1 день / правка start).
Фраза с часом уже в прошлом («11» в 14:00) ставит черновик на следующий день, тот же час.
**v2 (Front#51):** отказ от дуги (тап другой свободной ячейки / свайп недели) пишет штраф часу и мастеру в `localStorage` (`eh.timeArc.skips`) — дуга переезжает. ≥2 confirmed записей к одному `specialist_id` бустят его слоты. Месяц: тепло `data-time-arc-heat` на днях со скоренным часом. Personal: черновик «тот же час +7д» после прошедшего confirmed визита; тап открывает студию. **v2 (Front#51):** отказ от дуги (тап другой свободной ячейки / свайп недели) пишет штраф часу и мастеру в `localStorage` (`eh.timeArc.skips`) — дуга переезжает. ≥2 confirmed записей к одному `specialist_id` бустят его слоты. Месяц: тепло `data-time-arc-heat` на днях со скоренным часом. Personal: черновик «тот же час +7д» после прошедшего confirmed визита; тап открывает студию.
@@ -296,10 +297,13 @@ cover (`.eh-discover-media--photo`); иначе mood wash + initials (`.eh-disco
### 5.7. Отзывы ### 5.7. Отзывы
`GET/POST /v1/reviews`, `GET/PUT/DELETE /v1/reviews/:id`, `GET /v1/user/reviews`. Цели: `event` | `calendar`. `GET/POST /v1/reviews`, `GET/PUT/DELETE /v1/reviews/:id`, `GET /v1/user/reviews`. Цели: `event` | `calendar`.
Голос: `PUT /v1/reviews/:id/vote` `{ "value": "like"|"dislike" }`, `DELETE /v1/reviews/:id/vote`; в ответах — `my_vote`. Голос: `PUT /v1/reviews/:id/vote` `{ "value": "like"|"dislike" }`, `DELETE /v1/reviews/:id/vote`; в ответах — `my_vote`.
UI: форма отзыва скрыта без confirmed booking (event — booking на это событие; calendar — booking на событие календаря); подсказка + жалоба остаются. UI: без сессии скрыты форма отзыва, жалоба (календарь/событие/отзыв) и кнопки like/dislike
(счётчики лайков в списке отзывов остаются). С сессией: форма отзыва скрыта без
confirmed booking; подсказка gated + жалоба остаются (жалоба не требует booking).
### 5.8. Жалобы ### 5.8. Жалобы
`POST /v1/reports``target_type`: `event` | `calendar` | `review`. Жалоба не требует booking. `POST /v1/reports``target_type`: `event` | `calendar` | `review`. Жалоба не требует booking.
В client UI жалоба доступна только залогиненному пользователю.
### 5.9. Подписка ### 5.9. Подписка
`GET /v1/subscription`, `POST /v1/subscription` (`start_trial` | `activate` + `plan` + опционально `payment_info`). `GET /v1/subscription`, `POST /v1/subscription` (`start_trial` | `activate` + `plan` + опционально `payment_info`).