Назначение эпика: Оболочка мобильного приложения field-персонала (Housekeeping, Handyman, Coordinators в поле): нижняя навигация из 5 табов и три «дашборд»-экрана — Home (анонсы + операционная сводка дня + отзывы), Units (мои/закреплённые юниты с прогрессом уборки), Profile (моя смена, посещаемость, балансы отпусков, предупреждения). Tasks и Messager специфицированы в своих эпиках — здесь только как пункты shell.
Участвует в use-cases: UC field-исполнения (вход → ориентация в дне → задачи → связь → профиль/отметки). Конкретные UC-номера в 00-overview не пронумерованы для mobile → см. cross-ref ниже.
Сущности (owns/touches): Announcement (read), Reservation (read, сводка), Review (read, сводка), Unit (read, сводка), Task (read, сводка), Employee + Attendance + LeaveRequest (read — для Profile). Сам shell сущностей не владеет, только агрегирует чужие.
Экраны: S28 (Home), S47 (Units), S51 (Profile) + нижняя навигация (Home · Units · Tasks · Messager · Profile). Cross-ref: S50 My Tasks → E04, S49 Messager → E10.
Открытые findings: F-filter-hierarchy-assignee (видимость «своих» юнитов/задач для field-роли и vendors — см. 00-overview §3); см. также §«Дозумано».
00-overview §2) → tab-bar выстроен логически из набора mobile-экранов. Сами экраны реальны (S28/S47/S50/S49/S51), сам контейнер-таб-бар — 🟡.Home, Units, Tasks, Messager, Profile. Опционально badge-счётчик на Tasks (число due/overdue) и Messager (непрочитанные/Notifications) 🟡.Home (tab) → S28 Home dashboard.Units (tab) → S47 Units list.Tasks (tab) → S50 My Tasks (E04) — мои назначенные задачи + исполнение (checklist+timer).Messager (tab) → S49 Messager (E10) — Chats/Groups/Notifications.Profile (tab) → S51 Profile.3458764673066832684, 375×812 (texts=33, mockups=3, images=4).New / Archive + список карточек-анонсов.Check Outs (счётчик) и Check Ins (счётчик) с примером строки (дата · вилла · гость).Good Reviews / Bad Reviews / All Reviews + таблица-список (Date · Villa · Guest · Rating · Comment).New, Archive; карточка — заголовок (New Villa Alaya Check In Policy!), дата (22/05/2026), текст-превью.5, 2, 1; подписи Reservations, Check Outs, Check Ins; строка — 22/05/2026 · Alaya Villa · Guest Name.Good Reviews, Bad Reviews, All Reviews; колонки Date, Villa, Guest, Rating, Comment; строка — 22/05/2026 · Alaya Villa · Guest Name · 4 · Comment comment comment comment ....New / Archive (filter/tab) → переключает список анонсов (свежие / архив прочитанных).🟡 (в скелете — только превью; full-view не нарисован).Check Outs / Check Ins (button/счётчик) → переход к списку соответствующих резерваций 🟡 (целевой экран в скелете не задан).Good / Bad / All Reviews (filter/tab) → фильтрует таблицу отзывов по тональности.🟡 навигация на mobile не нарисована.New↔Archive; Reviews Good↔Bad↔All; empty (нет анонсов / нет резерваций на дату / нет отзывов); loading; filtered.00-overview §5).🟡.New/Archive логически следует из наличия двух состояний, но в скелете не показан.New; счётчики резерваций = 0 → «No check-ins/outs today»; длинный заголовок анонса / длинный comment отзыва → truncate с ... (как в макете); нет прав на юнит → строка не показывается.3458764673077372470, 375×812 (texts=18, mockups=3).Units; список секциями по статусу OCCUPIED / VACANT; в каждой секции — карточки юнитов; на карточке задача-индикатор (Daily Cleaning) со статус-чипом on track и временем-дедлайном.Units; секции OCCUPIED, VACANT; чип on track; время 12:00 26/06/2026; задача Daly Cleaning (в макете опечатка — целевой лейбл Daily Cleaning).OCCUPIED / VACANT (группировка) — визуальная группировка по статусу занятости юнита.🟡 mobile-навигация на детали не нарисована.Daily Cleaning + чип (button) → соответствующая задача в Tasks (E04) 🟡 связь логическая.on track / (амбер) due / (red) overdue — единые токены (00-overview §4); empty (нет закреплённых юнитов); filtered.due/overdue экстраполированы из единой статус-палитры (00-overview §4) — в макете виден только on track. Опечатка Daly Cleaning → каноничный лейбл Daily Cleaning.Daily Cleaning на карточку); просроченная уборка → red-чип overdue; нет прав → юнит не в списке.3458764673078779088, 375×812 (texts=12, mockups=3, images=1).Annual Leave Balance, Public Days Balance); блок Warnings со счётчиком.Agung Putri (имя), Housekeeping Coordinator (роль), 25/06/2026 (дата).09:00 - 18:00 (плановое окно), 08:46 (факт check-in), --:-- (check-out ещё не отмечен).Annual Leave Balance = 10, Public Days Balance = 5.Warnings = 10.🟡 — в макете check-out = --:-- (пусто), кнопка отметки не нарисована, но подразумевается симметрия с check-in (Attendance, E09).Annual Leave Balance / Public Days Balance (button) → история/запрос отпуска (Leave Management, E09) 🟡 навигация не нарисована.Warnings (button) → список предупреждений 🟡 целевой экран не нарисован.--:--); балансы > 0 / 0; warnings > 0 / 0; loading.09:00 - 18:00).08:46, check-out; пишется при отметке прихода/ухода — 00-overview §5: «Employee check-in/out (mobile) → Attendance»).🟡).🟡 — единственная возможная мутация на экране; в макете кнопка не нарисована, поведение симметрично check-in из E09.08:46 и пустым --:--); переходы из балансов/warnings на детали; источник сущности Warnings. Обоснование: check-in уже зафиксирован фактическим временем → парная отметка ухода неизбежна для attendance-цикла; без неё --:-- навсегда.--:--; оба отмечены → показ обоих времён; баланс 0 → 0 (не скрывать); warnings 0 → блок пустой/скрыт; данные смены отсутствуют (выходной) → «No shift today» 🟡. ┌──────────────── bottom tab-bar (Home · Units · Tasks · Messager · Profile) ────────────────┐
▼ ▼ ▼ (E04) ▼ (E10) ▼
S28 Home S47 Units S50 My Tasks S49 Messager S51 Profile
│ │ │
│ (read) │ Daily Cleaning task ──► S50 (E04, исполнение) │ check-out
Announcement/ Unit ──► карточка юнита (E01) ▼
Reservation/ Attendance (E09)
Review (read)
| Что | Зачем | Отклонение от прототипа |
|---|---|---|
| Bottom tab-bar как компонент (5 табов, active-подсветка, опц. badge) | Mobile-экраны в Miro нарисованы, но связующая оболочка отсутствует — без неё приложение не навигируемо | Контейнер не нарисован; состав табов = ровно набор существующих mobile-экранов, ничего сверх |
| Целевые экраны переходов (full-анонс, список check-ins/outs, mobile-деталь отзыва, карточка юнита, leave-history, warnings-list) | Тапабельные элементы подразумевают навигацию | В скелете нарисованы только текущие экраны; переходы помечены 🟡 пер-экранно, новые экраны НЕ специфицируются (живут в E01/E04/E08/E09/E10) |
| Check-out отметка на S51 | Зафиксирован факт check-in 08:46 и пустой --:-- → парная отметка ухода неизбежна для attendance-цикла | Кнопка не нарисована; поведение наследуется из E09 |
| Login / онбординг экран | Прототип не содержит ни одного экрана входа/аутентификации, при этом роль определяет видимость (00-overview §3 «роль фиксируется на входе») | Полностью отсутствует в Miro. Для прототипа допустимо начинать сразу с Home (роль — мок-параметр); для реализации — нужен экран входа. Помечено как пробел скелета, экран НЕ досочиняется здесь |
Статус-чипы due/overdue на S47 | Единая статус-палитра 00-overview §4 | В макете виден только on track; остальные экстраполированы из общих токенов, новых данных не вводят |