diff --git a/EventHubFrontSpec.md b/EventHubFrontSpec.md index d89351a..cd4be74 100644 --- a/EventHubFrontSpec.md +++ b/EventHubFrontSpec.md @@ -75,6 +75,11 @@ Deep-link на календарь, владельцем которого явл - **Свой default personal:** поверх сетки — overlay confirmed записей на чужие commercial слоты (Front-only: `GET /v1/user/bookings` → events/calendars). Заголовок `событие · студия · специалист`; клик → `/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 карточек активных специалистов → тап → сетка только со слотами `event.specialist_id` = выбранный; «Все слоты студии» снимает фильтр. Это **не** chip-filter на общей сетке. Book как обычно — без @@ -214,6 +219,12 @@ cover (`.eh-discover-media--photo`); иначе mood wash + initials (`.eh-disco `GET /v1/user/bookings` на чужих commercial — догрузить event/calendar и нарисовать на **своём default personal** grid; title `событие · студия · специалист`; клик → `/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. Past+pending / `expired` в «Мои записи» и на `EventActionCard` — бейдж «истекла», Cancel скрыт. На past-событии Book скрыт. Defensive: если API ещё отдал past diff --git a/WORKFLOW.md b/WORKFLOW.md index 1acb12e..3557a2f 100644 --- a/WORKFLOW.md +++ b/WORKFLOW.md @@ -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#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 |