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