diff --git a/docs/public/diagrams/component-map.svg b/docs/public/diagrams/component-map.svg
new file mode 100644
index 0000000..6bd4c90
--- /dev/null
+++ b/docs/public/diagrams/component-map.svg
@@ -0,0 +1,75 @@
+
diff --git a/docs/public/diagrams/database-overview.svg b/docs/public/diagrams/database-overview.svg
new file mode 100644
index 0000000..ba6f823
--- /dev/null
+++ b/docs/public/diagrams/database-overview.svg
@@ -0,0 +1,85 @@
+
diff --git a/docs/public/diagrams/system-architecture.svg b/docs/public/diagrams/system-architecture.svg
new file mode 100644
index 0000000..397de25
--- /dev/null
+++ b/docs/public/diagrams/system-architecture.svg
@@ -0,0 +1,85 @@
+
diff --git a/docs/public/prototypes/bonus-cabinet.svg b/docs/public/prototypes/bonus-cabinet.svg
new file mode 100644
index 0000000..45976ed
--- /dev/null
+++ b/docs/public/prototypes/bonus-cabinet.svg
@@ -0,0 +1,8 @@
+
diff --git a/docs/public/prototypes/cart.svg b/docs/public/prototypes/cart.svg
new file mode 100644
index 0000000..896aa19
--- /dev/null
+++ b/docs/public/prototypes/cart.svg
@@ -0,0 +1,12 @@
+
diff --git a/docs/public/prototypes/catalog-grid.svg b/docs/public/prototypes/catalog-grid.svg
new file mode 100644
index 0000000..bd9f440
--- /dev/null
+++ b/docs/public/prototypes/catalog-grid.svg
@@ -0,0 +1,37 @@
+
diff --git a/docs/public/prototypes/client-order.svg b/docs/public/prototypes/client-order.svg
new file mode 100644
index 0000000..89dd77e
--- /dev/null
+++ b/docs/public/prototypes/client-order.svg
@@ -0,0 +1,9 @@
+
diff --git a/docs/public/prototypes/dashboard.svg b/docs/public/prototypes/dashboard.svg
new file mode 100644
index 0000000..b4d4a9b
--- /dev/null
+++ b/docs/public/prototypes/dashboard.svg
@@ -0,0 +1,10 @@
+
diff --git a/docs/public/prototypes/manager-order.svg b/docs/public/prototypes/manager-order.svg
new file mode 100644
index 0000000..4c4c00e
--- /dev/null
+++ b/docs/public/prototypes/manager-order.svg
@@ -0,0 +1,11 @@
+
diff --git a/docs/public/prototypes/manager-orders.svg b/docs/public/prototypes/manager-orders.svg
new file mode 100644
index 0000000..5e19796
--- /dev/null
+++ b/docs/public/prototypes/manager-orders.svg
@@ -0,0 +1,9 @@
+
diff --git a/docs/public/prototypes/product-card.svg b/docs/public/prototypes/product-card.svg
new file mode 100644
index 0000000..fb1ef24
--- /dev/null
+++ b/docs/public/prototypes/product-card.svg
@@ -0,0 +1,39 @@
+
diff --git a/docs/tz/database-model.md b/docs/tz/database-model.md
index adfee2e..998cad1 100644
--- a/docs/tz/database-model.md
+++ b/docs/tz/database-model.md
@@ -4,6 +4,8 @@
Основное хранилище данных программного продукта реализуется на `PostgreSQL`. Прикладной доступ к данным осуществляется через `Prisma ORM`.
+
+
Модель данных должна обеспечивать хранение:
- пользователей и ролей
@@ -135,23 +137,15 @@
## 7.7 Основные связи между сущностями
-Укрупненная структура связей имеет следующий вид:
+Укрупненная структура связей определяется следующими правилами:
-```text
-Company -> User -> Cart -> CartItem -> Product
- -> Order -> OrderItem
- -> CounterpartyProfile
- -> DeliveryAddress
- -> MessengerConnection
- -> BonusTransaction
- -> RewardWithdrawalRequest
-
-Product -> ProductStock -> Warehouse
-ProductType -> CatalogProductTypeSetting
-
-User -> ReferralLink -> User
-Order -> OrderStatusEvent
-```
+- `Company` объединяет пользователей одной клиентской организации
+- `User` связан с `CounterpartyProfile`, `DeliveryAddress`, `MessengerConnection`, `Cart`, `Order`, `BonusTransaction` и `RewardWithdrawalRequest`
+- `Cart` содержит набор `CartItem`, привязанных к конкретным `Product`
+- `Order` содержит набор `OrderItem` и историю `OrderStatusEvent`
+- `Product` связан с остатками `ProductStock`, распределенными по сущностям `Warehouse`
+- настройки параметров по товарному направлению хранятся в `CatalogProductTypeSetting`
+- реферальные связи реализуются через `ReferralLink`, связывающий одного пользователя с другим пользователем
## 7.8 Требования к хранению прикладных данных
diff --git a/docs/tz/stage-1/index.md b/docs/tz/stage-1/index.md
index cb9a565..ff0496f 100644
--- a/docs/tz/stage-1/index.md
+++ b/docs/tz/stage-1/index.md
@@ -60,21 +60,9 @@
- блок бонусной информации при наличии подключенного бонусного контура
- индикатор статуса заполненности профиля клиента
-Прототип:
+Схематичный прототип:
-```text
-+------------------------------------------------------------------+
-| Header: Каталог | Заказы | Уведомления | Бонусы | Профиль |
-+------------------------------------------------------------------+
-| Быстрые действия |
-| [Каталог] [Мои заказы] [Заявка на расчет] [Бонусы] [Профиль] |
-+------------------------------------------------------------------+
-| Актуальные заказы и заявки |
-| № | Тип | Статус | Дата | Действие |
-+------------------------------------------------------------------+
-| Последние уведомления |
-+------------------------------------------------------------------+
-```
+
### 9.3.2 Каталог продукции
@@ -91,17 +79,9 @@
- карточка каждого товарного направления с изображением и наименованием
- переход в карточку выбранного товарного направления
-Прототип:
+Схематичный прототип:
-```text
-+------------------------------------------------------------------+
-| Каталог |
-+------------------------------------------------------------------+
-| [Карточка: Упаковочный скотч] [Карточка: Алюминиевый скотч] |
-| [Карточка: Крепп] [Карточка: Вспененный скотч] |
-| [Карточка: Двусторонний ПП] [Карточка: Двусторонний PVC] |
-+------------------------------------------------------------------+
-```
+
### 9.3.3 Карточка товара
@@ -123,28 +103,9 @@
- таблица доступных вариантов
- блок навигации к соседним товарным направлениям
-Прототип:
+Схематичный прототип:
-```text
-+------------------------------------------------------------------+
-| Назад |
-| Алюминиевый скотч |
-+------------------------------------------------------------------+
-| Изображение товара | Выбор параметров |
-| | [48 мм] [75 мм] |
-| | [10 м] [25 м] [50 м] |
-| | [50 мкм] |
-| | [Цвет] [Надпись] |
-| | [В корзину] |
-+------------------------------------------------------------------+
-| Пояснения по параметрам |
-| Длина указывается в метрах. При наличии разрешения допускается |
-| заказ индивидуального значения в согласованных пределах. |
-+------------------------------------------------------------------+
-| Доступные варианты |
-| SKU | Параметры | Остаток | Доступность | Действие |
-+------------------------------------------------------------------+
-```
+
Состав блока выбора параметров:
@@ -181,19 +142,9 @@
- выбранный адрес доставки
- итоговая сводка по количеству позиций
-Прототип:
+Схематичный прототип:
-```text
-+------------------------------------------------------------------+
-| Корзина |
-+------------------------------------------------------------------+
-| SKU | Товар | Параметры | Количество | Удалить |
-+------------------------------------------------------------------+
-| Адрес доставки: [выбранный адрес] |
-| Комментарий клиента: [........................................] |
-| [Отправить заявку] |
-+------------------------------------------------------------------+
-```
+
### 9.3.5 Карточка заявки или заказа
@@ -204,19 +155,9 @@
- просмотр стоимости и условий поставки после публикации
- просмотр истории изменений
-Прототип:
+Схематичный прототип:
-```text
-+------------------------------------------------------------------+
-| Номер заявки или заказа | Статус |
-+------------------------------------------------------------------+
-| Состав позиции |
-+------------------------------------------------------------------+
-| Стоимость и условия поставки |
-+------------------------------------------------------------------+
-| История изменений |
-+------------------------------------------------------------------+
-```
+
Состав страницы:
@@ -278,22 +219,9 @@
- форма подачи заявки на использование либо вывод бонусов
- правила бонусной программы
-Прототип:
+Схематичный прототип:
-```text
-+------------------------------------------------------------------+
-| Бонусный кабинет |
-+------------------------------------------------------------------+
-| Текущий баланс |
-+------------------------------------------------------------------+
-| История операций |
-| Дата | Тип | Основание | Сумма | Статус |
-+------------------------------------------------------------------+
-| Реферальные связи |
-+------------------------------------------------------------------+
-| [Подать заявку на использование / вывод] |
-+------------------------------------------------------------------+
-```
+
## 9.4 Менеджерские экранные формы
@@ -336,21 +264,9 @@
- публикация условий клиенту
- перевод заявки в работу либо отмена
-Прототип:
+Схематичный прототип:
-```text
-+------------------------------------------------------------------+
-| Клиент | Контрагент | Ответственный менеджер |
-+------------------------------------------------------------------+
-| Состав заявки или параметры индивидуального изделия |
-+------------------------------------------------------------------+
-| Стоимость |
-| Условия поставки и доставки |
-| Комментарий менеджера |
-+------------------------------------------------------------------+
-| [Опубликовать условия] [Перевести в работу] [Отменить] |
-+------------------------------------------------------------------+
-```
+
Состав страницы:
@@ -370,17 +286,9 @@
- фильтрация по статусам
- переход к обработке конкретного заказа
-Прототип:
+Схематичный прототип:
-```text
-+------------------------------------------------------------------+
-| Заказы |
-+------------------------------------------------------------------+
-| Фильтры: [Статус] [Клиент] [Период] |
-+------------------------------------------------------------------+
-| Код | Клиент | Статус | Сумма | Менеджер | Дата |
-+------------------------------------------------------------------+
-```
+
### 9.4.5 Настройки каталога
diff --git a/docs/tz/technical-architecture.md b/docs/tz/technical-architecture.md
index 2b69e23..c9b695b 100644
--- a/docs/tz/technical-architecture.md
+++ b/docs/tz/technical-architecture.md
@@ -4,31 +4,7 @@
Программный продукт реализуется по клиент-серверной модели и включает веб-клиент, сервер бизнес-логики, базу данных, модуль интеграции и вспомогательные сервисы уведомлений.
-Схема взаимодействия основных компонентов:
-
-```text
-Пользовательский браузер
- |
- v
-Nuxt web-frontend
- |
- v
-/api/graphql proxy
- |
- v
-Apollo GraphQL backend
- |
- v
-Prisma ORM
- |
- v
-PostgreSQL
-
-Дополнительно:
-- Vault используется как источник секретов
-- Telegram / Max используются как внешние каналы уведомлений
-- 1С используется как внешняя учетная система
-```
+
## 6.2 Состав прикладных сервисов
@@ -88,7 +64,11 @@ PostgreSQL
- `/catalog-settings` — административные настройки каталога
- `/bonus-program`, `/bonus-system/*` — бонусный контур
-## 6.6 Архитектура серверной части
+## 6.6 Карта слоев и компонентов
+
+
+
+## 6.7 Архитектура серверной части
Серверная часть организована по следующим основным модулям:
@@ -101,7 +81,7 @@ PostgreSQL
- `src/prisma-client.js` — точка подключения Prisma
- `src/messenger*.js`, `src/telegram*.js`, `src/max-mini-app.js` — мессенджерный контур и мини-приложения
-## 6.7 Взаимодействие фронтенда и backend
+## 6.8 Взаимодействие фронтенда и backend
Взаимодействие клиентской и серверной части строится через GraphQL API.
@@ -118,7 +98,7 @@ PostgreSQL
- централизованно передавать авторизационные данные
- поддерживать единый клиентский GraphQL endpoint
-## 6.8 Интеграционные и вспомогательные HTTP-точки
+## 6.9 Интеграционные и вспомогательные HTTP-точки
Помимо GraphQL API, во фронтенд-контуре реализованы вспомогательные серверные маршруты:
@@ -129,7 +109,7 @@ PostgreSQL
- `/api/dadata/party` — подсказки контрагентов
- `/api/messenger-avatar/[connectionId]` — выдача изображений, связанных с мессенджерными подключениями
-## 6.9 Компонентные требования к реализации
+## 6.10 Компонентные требования к реализации
Архитектура программного продукта должна сохранять следующие правила:
@@ -140,7 +120,7 @@ PostgreSQL
- серверная логика доступа к данным должна проходить через Prisma
- бизнес-правила доступа должны контролироваться серверной частью, а не только интерфейсом
-## 6.10 Требования к конфигурации и секретам
+## 6.11 Требования к конфигурации и секретам
Сервисы программного продукта должны получать прикладные секреты из `Vault`.