# План миграции ## Этап 1 — повторить поведение (L) Зафиксировать входной проект-копию, выбранные чертежи/линии, title block, таблицы и DOCX golden sample. Сравнить значения и структуру, не подключая production. ## Этап 2 — изолировать Plant 3D (XL) Ввести `IPlantProjectDataProvider`; оставить legacy provider для DCF 2019 и сделать отдельный provider для 2026. DTO не должны зависеть от `DataRow` и AutoCAD COM. ## Этап 3 — перенести документный mapping (L) Перенести только подтвержденный контракт: группы материалов, строки ВОР, title block и правила округления. Реализовать именованные slots/таблицы вместо индексов. ## Этап 4 — Word lifecycle (M) Вынести Word в отдельный STA worker, cleanup каждого COM proxy, temporary copy, validation и диагностические ошибки. Сохранить шаблон неизменным. ## Этап 5 — эквивалентность (L) Сравнить DOCX package, значения таблиц, headers/footers, PAGE/NUMPAGES, повторное открытие и отсутствие созданного Word process. PDF считать отдельным тестом: старый исходник экспорт PDF не подтверждает. ## Этап 6 — Plant 3D 2026 (XL) Проверить console helper и DCF schema на копии проекта, затем обновить adapter/SDK. Не смешивать миграцию Plant и переписывание document engine. ### Runtime tests Минимум: отсутствующие/открытые DWG; SQLite и SQL DCF; пустой проект; компоненты без line group; несколько материалов; пользовательская деталь; измененный шаблон; отсутствующий сетевой файл; Office отсутствует; Word COM cleanup; повторное открытие DOCX; сохранение исходного шаблона.