mirror of
https://github.com/wasrusgen/zov-tech.git
synced 2026-06-03 21:44:48 +00:00
- measurement_detail: любой мастер (measurer+assembler) видит фото замера - assembly_list: клиент видит все свои сборки (по client_tg_id) - assembly_detail: клиент видит детальную карточку сборки Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
111 lines
5.1 KiB
Markdown
111 lines
5.1 KiB
Markdown
# Структура ролей и взаимодействий — zov-tech
|
||
> Источник истины для всех агентов. Обновлять при изменении бизнес-логики.
|
||
|
||
---
|
||
|
||
## Роли
|
||
|
||
| Роль | Код | Кто |
|
||
|------|-----|-----|
|
||
| Менеджер | `manager` | Ведёт клиентов, управляет всем циклом |
|
||
| Замерщик | `measurer` | Проводит замеры |
|
||
| Сборщик | `assembler` | Исполняет сборки |
|
||
| Клиент | `client` | Получает подбор, голосует, самозамер |
|
||
|
||
**Важно:** один человек может иметь несколько ролей (`measurer` + `assembler` = универсал).
|
||
Роли выдаются через `/grant_role` менеджером.
|
||
|
||
---
|
||
|
||
## Доступ по ролям
|
||
|
||
### 🧑💼 Менеджер (`manager`)
|
||
- Полный доступ к CRM: клиенты, замеры, сборки, подборы
|
||
- Создаёт заявки на замер → назначает замерщику
|
||
- Создаёт заявки на сборку → назначает сборщику
|
||
- Создаёт подбор техники — самостоятельно или для клиента
|
||
- Видит все подборы своих клиентов
|
||
- Выдаёт/отзывает роли (`grant_role`)
|
||
- Видит входящие задачи (`manager_pending`)
|
||
|
||
### 📐 Замерщик (`measurer`)
|
||
- Видит входящие заявки на замер (`measurement_inbox`)
|
||
- Закрывает замер: фото, логистика, чертежи
|
||
- Не видит клиентскую базу и сборки
|
||
|
||
### 🔧 Сборщик (`assembler`)
|
||
- Видит список своих сборок (`assembly_list`)
|
||
- Видит детальную карточку сборки
|
||
- Читает логистику замера (адрес, этаж, парковка)
|
||
- Не видит клиентскую базу и замеры
|
||
|
||
### 👤 Клиент (`client`)
|
||
- Подбор техники: заполняет бриф, смотрит варианты, голосует
|
||
- Видит только свои подборы
|
||
- Самозамер (в разработке)
|
||
|
||
---
|
||
|
||
## Подбор техники — совместный доступ
|
||
|
||
**Правило:** подбор всегда имеет `manager_tg_id` + `client_tg_id`.
|
||
Оба видят его в своём кабинете.
|
||
|
||
| Сценарий | Кто создаёт | `filled_by` | Видят |
|
||
|----------|-------------|-------------|-------|
|
||
| Клиент сам | клиент | `client_self` | клиент + его менеджер |
|
||
| Менеджер для клиента | менеджер | `manager_for_client` | менеджер + клиент |
|
||
| Менеджер без клиента | менеджер | `manager_for_client` | только менеджер |
|
||
|
||
**Требование к UI:** когда менеджер создаёт подбор из карточки клиента — передавать `client_tg_id` клиента. Бэкенд уже поддерживает.
|
||
|
||
---
|
||
|
||
## Цикл сделки
|
||
|
||
```
|
||
1. КЛИЕНТ обращается
|
||
↓
|
||
2. МЕНЕДЖЕР заводит клиента в CRM
|
||
↓
|
||
3. МЕНЕДЖЕР создаёт заявку на замер → назначает ЗАМЕРЩИКУ
|
||
↓
|
||
4. ЗАМЕРЩИК проводит замер, загружает фото/чертежи, закрывает заявку
|
||
↓
|
||
5. МЕНЕДЖЕР создаёт подбор техники
|
||
→ самостоятельно, или совместно с КЛИЕНТОМ (клиент голосует)
|
||
↓
|
||
6. МЕНЕДЖЕР создаёт заявку на сборку → назначает СБОРЩИКУ
|
||
↓
|
||
7. СБОРЩИК выполняет сборку, закрывает заявку
|
||
↓
|
||
8. МЕНЕДЖЕР закрывает сделку
|
||
```
|
||
|
||
---
|
||
|
||
## Экраны MiniApp по ролям
|
||
|
||
| Маршрут | Менеджер | Замерщик | Сборщик | Клиент |
|
||
|---------|----------|----------|---------|--------|
|
||
| `#/clients` | ✅ | ❌ | ❌ | ❌ |
|
||
| `#/clients/new` | ✅ | ❌ | ❌ | ❌ |
|
||
| `#/clients/client/{key}` | ✅ | ❌ | ❌ | ❌ |
|
||
| `#/request` | ✅ | ❌ | ❌ | ❌ |
|
||
| `#/measurements` | ✅ | ✅ | ❌ | ❌ |
|
||
| `#/assembly` | ✅ | ❌ | ✅ | ❌ |
|
||
| `#/assembly/new` | ✅ | ❌ | ❌ | ❌ |
|
||
| `#/picker` (подбор) | ✅ | ❌ | ❌ | ✅ |
|
||
| `#/master` (входящие) | ❌ | ✅ | ✅ | ❌ |
|
||
| `#/me` (мой статус) | ✅ | ✅ | ✅ | ✅ |
|
||
|
||
> `#/master` и `#/me` — не реализованы, в ROADMAP Приоритет 1.
|
||
|
||
---
|
||
|
||
## Решения (зафиксированы 2026-05-18)
|
||
|
||
- [x] Сборщик видит фото замера + логистику ✅
|
||
- [x] Клиент видит все свои сборки (полная история) ✅
|
||
- [x] Замерщик получает уведомление в боте при назначении заявки ✅
|