# ТЗ: Технич. описание Связанные документы: - [План реорганизации](plan.md) - [Карта нового меню](menu.md) - [Исходное ТЗ](source-tz.md) - [ТЗ: Каталог общий](tz-catalog-common.md) ## 1. Назначение `Технич. описание` описывает технические данные позиции общего каталога и выгрузки этих данных в заданном формате. По новым вводным это, скорее всего, не отдельный самостоятельный модуль, а часть модуля `Каталог общий`: по сути это те же данные позиции, только представленные и выгружаемые в определенном формате. ## 2. Статус Статус: **кандидат на поглощение модулем `Каталог общий`**. Есть готовый модуль на Laravel. Его нужно изучить и использовать как источник: - структуры данных технического описания; - правил формирования выгрузок; - шаблонов/форматов экспорта; - возможных UI-решений, если они применимы к текущей CRM. ## 3. Место в меню До окончательного решения пункт `Технич. описание` можно оставить в целевой карте меню как заглушку для совместимости с исходным ТЗ. Предпочтительная целевая модель: ```text Каталог общий └── Карточка позиции └── Технич. описание / экспорт ``` Требования: - не проектировать отдельную сущность техописания, если достаточно данных карточки общего каталога; - открыть техописание из карточки позиции общего каталога; - обеспечить выгрузку технического описания в требуемом формате; - использовать готовый Laravel-модуль как источник логики экспорта. - выбранный год в CRM не влияет на техописания и их выгрузки. ## 4. Права доступа На этапе заглушки: - пункт/заглушку показывать всем авторизованным пользователям. Целевая модель: - просмотр техописания наследует доступ к позиции общего каталога; - экспорт техописания наследует доступ к позиции общего каталога; - редактирование данных техописания наследует права редактирования позиции общего каталога, если техописание будет встроено в карточку позиции. ## 5. Функциональные требования Целевой функционал: - просмотр технических данных из карточки позиции общего каталога; - редактирование технических данных вместе с карточкой позиции или в отдельной вкладке карточки; - формирование выгрузки технического описания в установленном формате; - использование готового Laravel-модуля как основы для экспорта; - хранение данных в структуре общего каталога или связанной таблице, если данные нельзя уложить в основную карточку позиции. ## 6. Что не входит до анализа готового модуля - отдельный самостоятельный раздел техописаний; - отдельная модель прав, не связанная с каталогом; - перенос данных без анализа структуры готового Laravel-модуля; - финальная схема таблиц. ## 7. Этапы реализации - [ ] Получить и изучить готовый Laravel-модуль техописаний. - [ ] Составить карту данных модуля техописаний. - [ ] Составить карту экспортов и форматов выгрузки. - [ ] Сопоставить данные техописаний с полями `Каталог общий`. - [ ] Решить, какие данные хранятся прямо в карточке позиции, а какие требуют связанных таблиц. - [ ] Встроить просмотр/редактирование техописания в карточку общего каталога. - [ ] Перенести или адаптировать экспорт из готового Laravel-модуля. - [ ] Если отдельный пункт меню больше не нужен, убрать его из финальной навигации. ## 8. Критерии приемки - Техническое описание доступно из карточки позиции общего каталога. - Данные техописания не дублируют общий каталог без необходимости. - Экспорт техописания работает в согласованном формате. - Готовый Laravel-модуль использован как источник экспортной логики. - Права просмотра/редактирования согласованы с правами общего каталога. ## 9. Открытые вопросы - Где находится готовый Laravel-модуль техописаний и какие его части можно переносить напрямую? - Какие точные форматы выгрузки нужны? - Оставлять ли отдельный пункт меню `Технич. описание` или полностью перенести функциональность внутрь `Каталог общий`?