zov-tech/agents/ROLES.md
wasrusgen 64292cef8e fix: права доступа по ролям — сборщик/клиент
- measurement_detail: любой мастер (measurer+assembler) видит фото замера
- assembly_list: клиент видит все свои сборки (по client_tg_id)
- assembly_detail: клиент видит детальную карточку сборки

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 11:59:16 +03:00

5.1 KiB
Raw Blame History

Структура ролей и взаимодействий — 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)

  • Сборщик видит фото замера + логистику
  • Клиент видит все свои сборки (полная история)
  • Замерщик получает уведомление в боте при назначении заявки