Энумы

Большинство ID в API ссылаются на справочники в БД. Значения могут отличаться между средами, поэтому в боевом коде надёжнее один раз дёрнуть list-endpoint и закэшировать map id → name. Ниже — снимки справочников + указатель «откуда брать живые значения».

Где взять актуальные значения

Поле в запросеList-endpoint (GET)ОписаниеИсточник
order_status_id/api/order_statusesСтатус заказатаблица ниже
delivery_type_id/api/delivery_typesСпособ доставкидинамический
payment_type_id/api/payment_typesСпособ оплатыдинамический
counterparty_type_id/api/counterparty_typesТип контрагента (физ/юр/розница…)таблица ниже
file_type_id/api/file_typesТип файлатаблица ниже (хардкод)
role_id (user)/api/rolesРоль сотрудникатаблица ниже
permission ids/api/permissionsПраво доступатаблица ниже
screen.id(возвращается в permissions)Экран в админкетаблица ниже
department_id/api/departmentsОтделдинамический
category_id/api/categoriesКатегория номенклатурыдинамический
brand_id/api/brandsБренддинамический
country_id/api/countriesСтранадинамический
city_id/api/citiesГороддинамический
vat_id/api/vatsСтавка НДСдинамический
sales_channel_id/api/sales_channelsКанал продаждинамический
sales_strategy_id/api/sales_strategiesСтратегия продаждинамический
nomenclature_type_id/api/nomenclature_typesТип номенклатурыдинамический
nomenclature_kind_id/api/nomenclature_kindsВид номенклатурыдинамический
object_id/api/objectsОбъектдинамический
unit_id/api/unitsЕдиница измерениядинамический

Статусы заказа

10 значений из дефолтного seed’а (database/seeders/OrderStatusSeeder.php в itecho-erp-backend) — это проектно-производственная вертикаль. ID могут разниться между средами, поэтому для отображения fetch’и через /api/order_statuses. Источник в event_ai: src/utils/orderStatusTone.ts.

⚠ Для e-commerce / оплаты — другие статусы. Платёжный поток (YooKassa) использует захардкоженные ID: 2 = ожидание оплаты, 22 = оплачен, 6 = отменён. Для отслеживания оплаты ориентируйтесь на эти ID, а не на названия из таблицы ниже. См. полную таблицу констант в erp-rules §12.1.

НазваниеToneСемантика
РасчётneutralЗаказ в работе, формируется КП
Коммерческое предложениеinfoОтправлено КП клиенту
СчётinfoВыставлен счёт
Ожидание оплатыinfoЖдём оплату
ЗамерinfoЗамер на объекте
Ожид. матер.infoОжидание материалов
ПроизводствоinfoПроизводство
ДоставкаinfoДоставка клиенту
МонтажinfoМонтаж у клиента
ПриёмкаposПриёмка работ, финал

Tone — внутренний маркер для UI:

ToneЗначениеCSS-переменная
neutralНейтрально--gg-ink-500
infoВ процессе--gg-accent
posУспех / завершено--gg-pos
negОтменено / ошибка--gg-neg

Эвристика для нестандартных статусов (тот же файл):

  • содержит отменneg
  • содержит готов, выполн, оплачpos
  • содержит работе, процессе, ожиданinfo
  • иначе → neutral

Типы файлов

Хардкод в event_ai/src/constants/file-types.ts — стабильные ID, можно полагаться:

IDНазваниеКонстанта в TSКогда
1Трудовой договорEMPLOYMENT_CONTRACT_IDДокументы сотрудника
2АватарAVATARАватар пользователя/контрагента
3Файл заказаORDER_FILEВложения к заказу (POST /api/orders/{id}/files)

Полный список — GET /api/file_types. Используется в file_type_id при POST /api/files.

Типы контрагентов

Дефолтный seed (наблюдалось в JSON-примерах):

IDНазваниеНазначение
1Юр. лицоis_company: true
2Розницаis_company: false

Эти ID могут различаться между установками. Перед созданием контрагента — GET /api/counterparty_types.

Роли сотрудников

Известны из JSON-примеров /api/user. Полный список — GET /api/roles.

IDname (slug)description
1ownerСобственник
3managerРуководитель отдела
4accountantБухгалтер

ID 2 не встречался в примерах — вероятно admin или схожая роль. Проверьте через /api/roles.

Права доступа (permissions)

Известны из JSON-примеров /api/user. Используются в массиве user.permissions[]. Полный список — GET /api/permissions.

IDnamedescriptionScreen
2edit-adminsРедактирование администраторов
4edit-usersРедактирование пользователей
5edit-rolesРедактирование ролей
6edit-permissionsРедактирование прав доступа
7edit-branchesРедактирование филиалов
8edit-departmentsРедактирование отделов
10edit-counterpartiesРедактирование контрагентовКонтрагенты (1)
12edit-communicationsРедактирование коммуникаций
14edit-ordersРедактирование заказовЗаказы (2)
16edit-tasksРедактирование задачЗадачи (3)

Список не полный — гэпы (ID 1, 3, 9, 11, 13, 15) указывают на ещё ~6 прав. ID 1 вероятно view-… или базовое право; ID 3, 9, 11, 13, 15 — соседние «view-» к парным `edit-`.

Экраны (screens)

Возвращается во вложенном объекте permission.screen. Получить полный список — GET /api/screens.

IDНазвание
1Контрагенты
2Заказы
3Задачи

Связаны с правами через permission.screen.id (см. таблицу выше).

Тоны истории (color)

Используется в histories[].color / counterparties.data[].color (events). 8 значений из стандартного Material-набора:

ЗначениеСемантика
primaryОсновное действие
secondaryВторичное действие
infoИнформация
successУспех
warningПредупреждение
errorОшибка
darkТёмный нейтральный
lightСветлый нейтральный

См. JSON-пример в ERP/Контрагенты → история и ERP/Бизнесы → история.

Что НЕ нужно угадывать

Поля, в которые передаётся ID из любого справочника выше, обязательно сначала проверять через list-endpoint — даже если значение видели в JSON-примере доки. Снимки справочников на этой странице сделаны в апреле 2024 и могут устареть.

Безопасно:

GET /api/order_statuses HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <token>
Accept: application/json

→ { "orderStatuses": [{ "id": 1, "name": "Расчёт", ... }, ...], "orderStatusesCount": 10 }

Полученный map сохраняется на стороне клиента и используется в каждом запросе создания заказа.

© 2026 Itecho ERP