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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user