# ROADMAP — zov-tech CRM MiniApp
> Обновляется агентами автоматически. Последнее обновление: 2026-05-18 (вечер)

---

## 🎯 Продуктовая цель
Telegram MiniApp для 112 менеджеров салонов ЗОВ: подбор техники, замеры, сборки, CRM-клиенты.
Привязка менеджеров к куратору через инструмент. Клиентский кабинет — воронка покупки.

---

## ✅ Готово (реализовано)

### Инфраструктура
- [x] VPS на Docker (FastAPI + aiogram + Caddy)
- [x] GitHub Pages для MiniApp (auto-deploy при push в master)
- [x] Google Sheets как БД
- [x] HMAC-SHA256 аутентификация через Telegram initData
- [x] Pre-push hook: CSS-линтер + UI Playwright блокируют сломанный код
- [x] CI: GitHub Actions запускает тесты при каждом push

### Модули MiniApp (менеджер/admin)
- [x] Список клиентов + поиск + карточка клиента
- [x] Создание/редактирование клиента
- [x] Замеры: создание, фото, закрытие заявки
- [x] Заявка на замер (назначение замерщику)
- [x] Сборки: создание, список, детальная карточка
- [x] Подбор техники (proposals): создание, варианты, голосование клиента
- [x] Подбор через AI (GigaChat/Claude)
- [x] Приватность клиентских данных (имена/телефоны скрыты визуально)
- [x] 4 темы оформления: Default, Foundry, Boardroom, Atelier
- [x] Экран #/me — профиль для всех ролей (менеджер / сотрудник / клиент)
- [x] Экран #/master — входящие заявки для замерщика/сборщика
- [x] Экран #/inbox — входящие задачи менеджера (решение по подбору)

### Качество
- [x] 15-секундный таймаут на все fetch-запросы (все модули)
- [x] CSS-линтер (запрещённые паттерны + WCAG-контраст)
- [x] Smoke API тесты (12 эндпоинтов)
- [x] Полный тест кабинета менеджера (19 сценариев)
- [x] UI Playwright smoke (15 проверок — все экраны включая #/inbox, #/me)
- [x] CI: smoke-ui.yml — Playwright против GitHub Pages после каждого деплоя
- [x] Docker login на VPS (без 429 при ребилде)

---

## 🔄 В работе

| Задача | Агент | Статус |
|--------|-------|--------|
| Доступ сервисного аккаунта к Google Drive (отгрузки/поступления) | devops | ⏳ ждём подтверждения |

---

## 📋 Бэклог (приоритизирован)

### Приоритет 1 — Завершение MVP менеджера
- [x] Экран «Мой статус» — #/me реализован
- [x] Входящие задачи менеджера — #/inbox реализован
- [ ] Отгрузки и поступления склада (⏳ блокер: share Drive с zov-backend@zov-sborka.iam.gserviceaccount.com)

### Приоритет 2 — Клиентский кабинет
- [ ] Базовый клиентский экран (сейчас только `#/picker`)
- [ ] История заказов клиента
- [ ] Самозамер (5-шаговая форма для клиента)
- [ ] Калькулятор стоимости кухни

### Приоритет 3 — Аналитика и управление
- [ ] Дашборд куратора: активность менеджеров, воронка сделок
- [ ] Реестр менеджеров: поле `last_order_date`, 90-дневный контроль активности
- [ ] Метрики: количество замеров, подборов, сборок по менеджеру

### Приоритет 4 — Монетизация
- [ ] Платёжная интеграция (Telegram Stars / ЮKassa)
- [ ] Статусы подписки менеджеров (бесплатно / платно)

### Технический долг
- [ ] `Content-Type: application/json` в `_fetchWithTimeout` (все модули)
- [ ] Аудит `app.js` роутера на edge cases
- [ ] Тест карточки клиента в Playwright (нужна фикстура)
- [ ] Staging-окружение (отдельный VPS или Docker Compose override)

---

## 🚫 Не в скоупе (решение принято)
- Нативное мобильное приложение (остаётся MiniApp)
- База знаний, Обучение, FAQ (отдельный продукт)
- Партнёрская комиссия от производителей
