Флоу
Это короткая карта сквозных пользовательских процессов. Подробные правила каждого контура вынесены в отдельные концепции, а точные HTTP-контракты — в Scalar API Reference.
Проектный флоу
Админ: "Настраиваю пользователей, отделы, должности и роли"
↓
Менеджер: "Создаю компанию, контакт и проект"
↓
Менеджер: "Загружаю ТЗ и создаю спецификацию"
↓
Менеджер: "Формирую команду или создаю team request"
↓
Команда: "Создает задачи и запускает work sessions"
↓
Задачи: "pause/finish создают auto time entries"
↓
Логистика: "Оборудование оформляется через equipment requests и logistics"
↓
Trips: "Командировки создают задачи и travel cost items"
↓
Finance: "Cost items агрегируются в budget summary"
↓
Documents: "Генерируются смета, счет, договор, акт"
↓
Менеджер: "Проект проходит done -> closed"Ключевые backend-правила:
- проектные статусы:
planned -> estimating -> approved -> in_progress -> done -> closed, отдельноcancelled; - задача закрывается через
POST /api/v1/tasks/:id/finish, а не прямымPATCHвdone; GET /api/v1/tasks/active-sessions— открытые рабочие сессии текущего пользователя (задача, проект, начало): таймер в шапке интерфейса; пауза и завершение — теми жеPOST /tasks/:id/pause|finish;GET /api/v1/tasksиGET /api/v1/tasks/:idотдаютallowed_statuses— куда текущий пользователь может перевести задачу: по матрице переходов (todo → in_progress/blocked/cancelled,in_progress → blocked/done/cancelled,blocked → in_progress/cancelled;doneиcancelledконечные), администратор — в любой статус. Интерфейс показывает только эти статусы и не держит свою копию матрицы;- budget читает
finance.cost_items; - закрытый проект запрещает новые финансовые строки.
CRM-флоу
- Создать компанию:
POST /api/v1/companies. - Создать контакт:
POST /api/v1/contacts. - Связать контакт с компанией:
POST /api/v1/companies/:id/contacts. - Добавить реквизиты:
POST /api/v1/requisites. - Создать проект с
company_idиcontact_id. - В карточке использовать
/api/v1/entities/:type/:id/related, чтобы показать связанные проекты, контакты, реквизиты и произвольные links.
Подробнее: Клиенты и контакты.
Коммуникационный флоу
- Глобальный список:
GET /api/v1/chats. - Direct/group чат создается пользователем через
POST /api/v1/chats. - Project chat создается бизнес-логикой проекта/команды.
- Task chat создается или возвращается через
GET /api/v1/tasks/:id/chat. - Сообщения отправляются через
/api/v1/chats/:id/messagesили/api/v1/tasks/:id/chat/messages. - Открытый чат обновляется через
/ws/chat. - Notification badge обновляется через
/ws/notifications.
Подробнее: Система чатов, Система уведомлений.
Логистический флоу
- Менеджер создает заявку на оборудование в проекте.
- Finance согласует сумму, если используется legacy-flow equipment request.
- Логист запрашивает
source-options. - Логист собирает
operation-plan/preview. operation-plan/confirmсоздает дочерниеlogistic_operations.- Маршрут подтверждается через
/api/v1/logistics/:id/confirm. - Финансы согласуют сумму операции через
/finance/approve. - Логистика ведет статусы до
closed. - Оборудование меняет фактическую локацию, Finance получает cost item.
Подробнее: Логистический контур.
Финансово-документный флоу
- Автоматические источники и ручной ввод создают
finance.cost_items. GET /api/v1/projects/:id/budgetгруппирует строки и применяет наценку.POST /api/v1/projects/:id/documents/estimateсоздает смету.invoiceиactучаствуют во взаиморасчетах.paymentsфиксирует факт денег и allocations по документам.- Отчеты ДДС, дебиторки и НДС строятся по completed-платежам.
Подробнее: Система бюджета, Касса и платежи, Система документов.
Граница с API
В этом разделе не нужно вручную держать полные JSON-схемы. Для точных контрактов используйте:
- Scalar API Reference;
docs/assets/data/endpoints.json;docs/assets/data/openapi.json;- исходные DTO в
internal/modules/*/transport_http.go.