docs: sync Front#43 specialist duty overlay on personal

Accepted invites + active specialist check; personal owner does not
mirror foreign roster.

Refs EventHub/EventHubFront#43
This commit is contained in:
2026-07-29 21:16:55 +03:00
parent 9d79babac5
commit 2fa4635a9f
2 changed files with 12 additions and 0 deletions
+11
View File
@@ -75,6 +75,11 @@ Deep-link на календарь, владельцем которого явл
- **Свой default personal:** поверх сетки — overlay confirmed записей на чужие commercial - **Свой default personal:** поверх сетки — overlay confirmed записей на чужие commercial
слоты (Front-only: `GET /v1/user/bookings` → events/calendars). Заголовок слоты (Front-only: `GET /v1/user/bookings` → events/calendars). Заголовок
`событие · студия · специалист`; клик → `/c/:foreignCalId/e/:eventId` (не в своём cal). `событие · студия · специалист`; клик → `/c/:foreignCalId/e/:eventId` (не в своём cal).
Дополнительно (Front#43): overlay **своих** рабочих слотов commercial, где
`specialist_id` = текущий user — gate через accepted `GET /v1/user/specialist-invites`
+ проверка active в `GET …/specialists`, затем `GET …/events?from&to`; title
`событие · студия`. Personal владельца без accepted invite / без своих слотов
чужой roster **не** зеркалит.
- **Guest на чужом commercial (D9 модель B):** roster карточек активных специалистов → - **Guest на чужом commercial (D9 модель B):** roster карточек активных специалистов →
тап → сетка только со слотами `event.specialist_id` = выбранный; «Все слоты студии» тап → сетка только со слотами `event.specialist_id` = выбранный; «Все слоты студии»
снимает фильтр. Это **не** chip-filter на общей сетке. Book как обычно — без снимает фильтр. Это **не** chip-filter на общей сетке. Book как обычно — без
@@ -214,6 +219,12 @@ cover (`.eh-discover-media--photo`); иначе mood wash + initials (`.eh-disco
`GET /v1/user/bookings` на чужих commercial — догрузить event/calendar и нарисовать `GET /v1/user/bookings` на чужих commercial — догрузить event/calendar и нарисовать
на **своём default personal** grid; title `событие · студия · специалист`; на **своём default personal** grid; title `событие · студия · специалист`;
клик → `/c/:foreignCalId/e/:eventId`. Back API не менялся. клик → `/c/:foreignCalId/e/:eventId`. Back API не менялся.
- **Specialist duty overlay на personal (Front-only, Front#43):** на своём personal —
слоты commercial, где `event.specialist_id` = текущий user. Gate: accepted invites
(`GET /v1/user/specialist-invites`) → unique `calendar_id` → active specialist
(`GET /v1/calendars/:id/specialists`) → list events viewport. Title `событие · студия`;
клик → `/c/:commercialId/e/:eventId`. Legacy specialist без invite-записи — вне MVP.
Не зеркалить чужой roster на personal owner.
- Статусы: `pending` | `confirmed` | `cancelled` | `expired`; confirmation: `auto` | `manual` | timeout. - Статусы: `pending` | `confirmed` | `cancelled` | `expired`; confirmation: `auto` | `manual` | timeout.
Past+pending / `expired` в «Мои записи» и на `EventActionCard` — бейдж «истекла», Past+pending / `expired` в «Мои записи» и на `EventActionCard` — бейдж «истекла»,
Cancel скрыт. На past-событии Book скрыт. Defensive: если API ещё отдал past Cancel скрыт. На past-событии Book скрыт. Defensive: если API ещё отдал past
+1
View File
@@ -393,6 +393,7 @@ error rate > 1% **или** mean request > 500 ms (hold ≥2 мин в фазе)
| Дата | Изменение | | Дата | Изменение |
|------|-----------| |------|-----------|
| 2026-07-29 | Spec sync Front#43: specialist duty overlay на personal (accepted invites + active check) |
| 2026-07-28 | Spec sync Front#40: Mood chip в AppShell у BrandWordmark; week single day-header + `.eh-cal-week-scroll` | | 2026-07-28 | Spec sync Front#40: Mood chip в AppShell у BrandWordmark; week single day-header + `.eh-cal-week-scroll` |
| 2026-07-28 | Spec sync Front#39: Mood chip в workspace (не Ещё); Lens Обзор/Сегодня/Записи + strip; mood→DB, lens→localStorage | | 2026-07-28 | Spec sync Front#39: Mood chip в workspace (не Ещё); Lens Обзор/Сегодня/Записи + strip; mood→DB, lens→localStorage |
| 2026-07-28 | Spec sync Front#35: D9 B guest specialist schedule; confirmed overlay на personal; SpecialistsPanel density; F6 EventActionCard | | 2026-07-28 | Spec sync Front#35: D9 B guest specialist schedule; confirmed overlay на personal; SpecialistsPanel density; F6 EventActionCard |