Update technical specification structure

This commit is contained in:
Ruslan Bakiev
2026-05-04 09:59:07 +07:00
parent 0a96adbb78
commit ac312a3a62
19 changed files with 517 additions and 692 deletions

View File

@@ -1,6 +1,6 @@
# 4. Требования к данным и сущностям
# 6. Требования к данным и сущностям
## 4.1 Общие требования к данным
## 6.1 Общие требования к данным
Основное хранилище данных программного продукта реализуется на `PostgreSQL`. Прикладной доступ к данным осуществляется через `Prisma ORM`.
@@ -18,7 +18,7 @@
В прикладной реализации должны использоваться фактические сущности базы данных, определенные в `schema.prisma`. Наименование сущностей в документации и в базе данных должно сопоставляться однозначно.
## 4.2 Справочник сущностей базы данных
## 6.2 Справочник сущностей базы данных
| Модель в базе данных | Русское наименование | Назначение |
| --- | --- | --- |
@@ -42,7 +42,7 @@
| `BonusTransaction` | Бонусная транзакция | Начисление или списание бонусов |
| `RewardWithdrawalRequest` | Заявка на вывод бонусов | Заявка клиента на использование или вывод бонусов |
## 4.3 Служебные перечисления и статусы
## 6.3 Служебные перечисления и статусы
В модели данных используются следующие перечисления:
@@ -53,9 +53,9 @@
- `OrderStatus`: `NEW`, `MANAGER_PROCESSING`, `WAITING_DOUBLE_CONFIRM`, `CLIENT_REJECTED`, `MANAGER_REJECTED`, `MANAGER_BLOCKED`, `CONFIRMED`, `IN_PROGRESS`, `COMPLETED`
- `WithdrawalStatus`: `PENDING`, `APPROVED`, `REJECTED`
## 4.4 Пользователи и компании
## 6.4 Пользователи и компании
### 4.4.1 Company
### 6.4.1 Company
Русское наименование: `Компания`
@@ -76,7 +76,7 @@
- одна компания связана со многими пользователями
### 4.4.2 User
### 6.4.2 User
Русское наименование: `Пользователь`
@@ -105,7 +105,7 @@
- пользователь может выступать клиентом или менеджером в заказах
- пользователь может иметь бонусные операции и заявки на вывод
### 4.4.3 DeliveryAddress
### 6.4.3 DeliveryAddress
Русское наименование: `Адрес доставки`
@@ -125,7 +125,7 @@
- `createdAt`
- `updatedAt`
### 4.4.4 CounterpartyProfile
### 6.4.4 CounterpartyProfile
Русское наименование: `Профиль контрагента`
@@ -153,7 +153,7 @@
- `createdAt`
- `updatedAt`
### 4.4.5 RegistrationRequest
### 6.4.5 RegistrationRequest
Русское наименование: `Заявка на подключение`
@@ -175,7 +175,7 @@
- `createdAt`
- `updatedAt`
### 4.4.6 Invitation
### 6.4.6 Invitation
Русское наименование: `Приглашение`
@@ -195,7 +195,7 @@
- `acceptedAt`
- `createdAt`
### 4.4.7 MessengerConnection
### 6.4.7 MessengerConnection
Русское наименование: `Подключение мессенджера`
@@ -216,9 +216,9 @@
- `isActive`
- `createdAt`
## 4.5 Каталог и складской контур
## 6.5 Каталог и складской контур
### 4.5.1 Product
### 6.5.1 Product
Русское наименование: `Товар`
@@ -245,7 +245,7 @@
- `createdAt`
- `updatedAt`
### 4.5.2 CatalogProductTypeSetting
### 6.5.2 CatalogProductTypeSetting
Русское наименование: `Настройки типа товара`
@@ -274,7 +274,7 @@
- `createdAt`
- `updatedAt`
### 4.5.3 Warehouse
### 6.5.3 Warehouse
Русское наименование: `Склад`
@@ -290,7 +290,7 @@
- `createdAt`
- `updatedAt`
### 4.5.4 ProductStock
### 6.5.4 ProductStock
Русское наименование: `Складской остаток`
@@ -306,9 +306,9 @@
- `availableQty`
- `updatedAt`
## 4.6 Корзина, заявки и заказы
## 6.6 Корзина, заявки и заказы
### 4.6.1 Cart
### 6.6.1 Cart
Русское наименование: `Корзина`
@@ -324,7 +324,7 @@
- `createdAt`
- `updatedAt`
### 4.6.2 CartItem
### 6.6.2 CartItem
Русское наименование: `Позиция корзины`
@@ -345,7 +345,7 @@
- `createdAt`
- `updatedAt`
### 4.6.3 Order
### 6.6.3 Order
Русское наименование: `Заказ / заявка`
@@ -380,7 +380,7 @@
- `kind = CALCULATION` означает сценарий расчета индивидуальной продукции
- поле `calculationPayload` хранит параметры расчетной заявки
### 4.6.4 OrderItem
### 6.6.4 OrderItem
Русское наименование: `Позиция заказа`
@@ -398,7 +398,7 @@
- `unitPrice`
- `createdAt`
### 4.6.5 OrderStatusEvent
### 6.6.5 OrderStatusEvent
Русское наименование: `Событие статуса заказа`
@@ -415,9 +415,9 @@
- `note`
- `createdAt`
## 4.7 Бонусный и реферальный контур
## 6.7 Бонусный и реферальный контур
### 4.7.1 ReferralLink
### 6.7.1 ReferralLink
Русское наименование: `Реферальная связь`
@@ -434,7 +434,7 @@
- `bonusPercent`
- `createdAt`
### 4.7.2 BonusTransaction
### 6.7.2 BonusTransaction
Русское наименование: `Бонусная транзакция`
@@ -452,7 +452,7 @@
- `referralLinkId`
- `createdAt`
### 4.7.3 RewardWithdrawalRequest
### 6.7.3 RewardWithdrawalRequest
Русское наименование: `Заявка на вывод бонусов`
@@ -471,7 +471,7 @@
- `createdAt`
- `updatedAt`
## 4.8 Основные связи между сущностями
## 6.8 Основные связи между сущностями
Укрупненная структура связей определяется следующими правилами:
@@ -483,7 +483,7 @@
- настройки параметров по товарному направлению хранятся в `CatalogProductTypeSetting`
- реферальные связи реализуются через `ReferralLink`, связывающий одного пользователя с другим пользователем
## 4.9 Структура хранения и модель базы данных
## 6.9 Структура хранения и модель базы данных
![Укрупненная модель базы данных](/diagrams/database-model.svg)