Ворклог по задаче "Унифицировать интерфейсы заявок"

8 сент. 2026 г., 09:39:27

Унифицировал заявки на пропуска в GraphQL и новом личном кабинете

Исторически в системе Kilfor существовали три разных вида заявок на пропуска:

  • заявки на посетителей;
  • заявки на материальный внос/вынос;
  • заявки на въезд автомобилей.

Для этих типов используются разные наборы таблиц в базе данных, а в отдельных сценариях различается и набор полей. Структуру БД и существующую бизнес-логику я намеренно не менял, чтобы не затрагивать стабильный legacy backend.

Унификацию сделал на уровне GraphQL API и frontend. В GraphQL добавлен union type и единые резолверы, которые позволяют получать разные типы пропусков через общий интерфейс. В результате заявки из разных источников теперь читаются и выводятся единым списком независимо от того, в каких таблицах они физически хранятся.

На frontend реализована единая форма создания заявки с переключателем типа пропуска. Пользователь работает с одним интерфейсом, а нужный набор полей и логика формы адаптируются под выбранный сценарий: посетитель, материальный внос/вынос или автомобиль.

Это убрало историческое раздробление интерфейса на несколько отдельных страниц и форм, при этом сохранило существующую структуру данных и права доступа. Получился единый UX для заявок на пропуска без рискованной миграции данных и переписывания MODX backend.

03.09.2026