# ТЗ: Технич. описание Связанные документы: - [План реорганизации](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-модуля. - [x] Не добавлять отдельный пункт меню `Технич. описание` в финальную навигацию. ## 8. Критерии приемки - Техническое описание доступно из карточки позиции общего каталога. - Данные техописания не дублируют общий каталог без необходимости. - Экспорт техописания работает в согласованном формате. - Готовый Laravel-модуль использован как источник экспортной логики. - Права просмотра/редактирования согласованы с правами общего каталога. ## 9. Открытые вопросы - Где находится готовый Laravel-модуль техописаний и какие его части можно переносить напрямую? - Какие точные форматы выгрузки нужны?