Expand technical specification content

This commit is contained in:
Ruslan Bakiev
2026-05-01 11:41:30 +07:00
parent df721e273d
commit ef0622fe89
8 changed files with 718 additions and 377 deletions

View File

@@ -1,105 +1,167 @@
# Данные и интеграции
# 5. Данные и интеграции
## Основные сущности
## 5.1 Основные сущности данных
В текущем ТЗ должны быть формально закреплены следующие сущности:
Система должна оперировать следующими основными сущностями:
- пользователь
- роль
- контрагент
- клиентская заявка на подключение
- заявка на подключение
- товар
- остаток по складу
- складской остаток
- корзина
- заявка на заказ
- заявка на расчет
- заказ
- событие статуса заказа
- событие изменения статуса
- уведомление
- бонусная связь
- бонусная транзакция
- заявка на вывод
- заявка на вывод вознаграждения
## Минимальный состав данных по ключевым сущностям
## 5.2 Обязательные данные по сущностям
### Пользователь
Обязательные поля:
- идентификатор
- имя
- email
- телефон
- роль
- статус доступа
- связанные мессенджеры
- привязанный контрагент
- статус учетной записи
- связанный контрагент
- подключенные каналы уведомлений
### Контрагент
Обязательные поля:
- идентификатор
- наименование компании
- ИНН
- КПП
- юридический адрес
- контактные лица
- закрепленный менеджер
### Товар
- SKU
- наименование
- тип товара
- параметры товара
- флаги кастомизации
- остатки по складам
### Заявка на заказ / расчет
Обязательные поля:
- идентификатор
- SKU
- наименование
- тип продукции
- набор параметров
- остатки по складам
- признаки доступности
### Заявка на заказ
Обязательные поля:
- идентификатор
- тип заявки
- инициатор
- состав позиций или параметры изделия
- дата создания
- состав позиций
- количество
- комментарий клиента
- статус
- история изменений
- стоимость после обработки
- параметры доставки
- закрепленный менеджер
- стоимость после обработки
- параметры доставки после обработки
### Заявка на расчет
Обязательные поля:
- идентификатор
- инициатор
- дата создания
- параметры изделия
- комментарий клиента
- статус
- закрепленный менеджер
- стоимость после обработки
- параметры доставки после обработки
### Заказ
- идентификатор во внутренней системе
Обязательные поля:
- внутренний идентификатор
- внешний идентификатор 1С
- статус
- даты статусов
- состав
- даты изменений
- состав заказа
- стоимость
- доставка
- связанная заявка
- связанная клиентская заявка
## Интеграции
## 5.3 Требования к данным каталога
### Интеграция с 1С
Для каждой позиции в каталоге система должна хранить и отображать:
На уровне ТЗ фиксируем две группы обменов.
- тип товара
- параметры выбора
- описание параметров
- остатки по складам
- доступные варианты
- признаки кастомизации, если они применимы
#### Входящие события
## 5.4 Интеграция с 1С
- создание нового заказа
- изменение заказа
- обновление статуса
- обновление параметров доставки
- обновление состава и других полей заказа
Интеграция с 1С должна обеспечивать обмен данными о заказах и каталоге.
#### Методы получения данных
### Входящие события
- получение заказов клиента
- получение каталога
- получение характеристик товаров
- получение остатков по складам
Система должна принимать:
## Что нужно зафиксировать отдельно до финальной версии
- событие создания заказа
- событие изменения заказа
- событие изменения статуса
- событие изменения доставки
- событие изменения состава или иных параметров
- контракт webhook-событий
- идентификаторы и правила синхронизации сущностей
- правила дедупликации заказов
- политика ретраев и повторной обработки
- требования к логированию ошибок интеграции
### Методы получения данных
## Требования к журналированию
Система должна получать:
Для спорных операций система должна хранить:
- список заказов клиентов
- каталог товаров
- характеристики товаров
- остатки по складам
## 5.5 Требования к интеграционному обмену
Интеграционный слой должен обеспечивать:
- сопоставление внутренних идентификаторов и идентификаторов 1С
- защиту от дублирования событий
- журналирование входящих событий
- повторную обработку неуспешных событий
- сохранение истории обновлений
## 5.6 Требования к журналированию
Для ключевых операций система должна хранить:
- кто инициировал действие
- когда оно произошло
- когда произошло действие
- какой объект был изменен
- какое было предыдущее значение статуса
- какое стало новое значение статуса
- какое состояние было до изменения
- какое состояние стало после изменения
## 5.7 Бонусные данные
Для бонусного контура система должна хранить:
- текущий баланс
- историю начислений
- историю списаний
- реферальные связи
- заявки на вывод
- статус обработки заявок на вывод