# PriceForge — План очистки (удаление конфигуратора) Цель: убрать всё, что связано с конфигуратором серверов, проектами, экспортом. Оставить: администратор цен, прайслисты, складские справки, алерты, компоненты. Будущее: интеграция с API B2B площадок для автоматических котировок. --- ## 1. Удалить файлы - [ ] `internal/services/local_configuration.go` — CRUD конфигов через SQLite - [ ] `internal/services/local_configuration_versioning_test.go` - [ ] `internal/services/project.go` — проекты - [ ] `internal/services/export.go` — CSV экспорт - [ ] `internal/services/quote.go` — расчёт котировок - [ ] `internal/services/quote_price_levels_test.go` - [ ] `internal/handlers/export.go` — экспорт хэндлер - [ ] `internal/handlers/configuration.go` — legacy хэндлер конфигураций - [ ] `internal/handlers/quote.go` — хэндлер котировок - [ ] `web/templates/index.html` (85KB) — конфигуратор - [ ] `web/templates/configs.html` (38KB) — список конфигураций - [ ] `web/templates/projects.html` (19KB) — список проектов - [ ] `web/templates/project_detail.html` (23KB) — детали проекта ## 2. Упростить `cmd/pfs/main.go` - [ ] Удалить создание сервисов: `configService`, `projectService`, `quoteService`, `exportService` - [ ] Удалить хэндлеры: `quoteHandler`, `exportHandler` - [ ] Удалить все routes `/api/configs/*` (строки ~807-1093) - [ ] Удалить все routes `/api/projects/*` (строки ~1095-1405) - [ ] Удалить routes `/api/quote/*` (строки ~779-784) - [ ] Удалить routes `/api/export/*` (строки ~786-790) - [ ] Удалить web pages: `/configs`, `/configurator`, `/projects`, `/projects/:uuid` - [ ] Удалить `triggerPull`, `syncProjectsFromServer`, `syncConfigurationsFromServer` - [ ] Удалить data hygiene: `BackfillConfigurationProjects`, `PurgeEmptyNamelessProjects`, `ConsolidateSystemProjects` - [ ] Удалить sync worker (PriceForge — source of truth, background sync не нужен) - [ ] `GET /` → redirect на `/admin/pricing` - [ ] Обновить лог: "starting PriceForge server" - [ ] Обновить version output: "pfs version %s" ## 3. Упростить `handlers/web.go` - [ ] Удалить из `simplePages`: `configs.html`, `projects.html`, `project_detail.html` - [ ] Удалить загрузку `index.html` + `components_list.html` (специальный блок) - [ ] Удалить методы: `Configurator()`, `Configs()`, `Projects()`, `ProjectDetail()` - [ ] Изменить `Index()` → redirect на `/admin/pricing` - [ ] Оставить: `AdminPricing()`, `Pricelists()`, `PricelistDetail()`, `Login()`, `ComponentsPartial()` ## 4. Упростить `base.html` (навигация) - [ ] Логотип: "PriceForge" вместо "PriceForge" - [ ] Убрать ссылки: "Мои проекты" - [ ] Оставить: "Администратор цен", "Прайслисты", "Настройки" - [ ] Убрать sync indicator из хедера (или упростить — только online/offline статус MariaDB) ## 5. `handlers/component.go` — читать из MariaDB - [ ] PriceForge работает напрямую с MariaDB (не local-first) - [ ] Проверить что `List()` использует MariaDB как primary source - [ ] Если читает из SQLite — переключить на `componentService.List()` (MariaDB) ## 6. Sync — минимальный - [ ] Убрать sync worker (`sync.NewWorker` и `syncWorker.Start`) - [ ] Убрать pending_changes push логику - [ ] Оставить `/api/sync/status` и `/api/sync/info` для диагностики - [ ] Опционально: оставить `/api/sync/components` и `/api/sync/pricelists` чтобы QFS мог pull ## 7. Обновить Makefile - [ ] `BINARY := pfs` - [ ] Пути к `./cmd/pfs` - [ ] Обновить APP_NAME и описания ## 8. Верификация - [ ] `go build ./cmd/pfs` — компилируется - [ ] `go vet ./...` — без ошибок - [ ] Запуск → `/admin/pricing` работает - [ ] Создание прайслиста работает - [ ] Импорт складской справки работает - [ ] Нет ссылок на конфигуратор в UI ## 9. Обновить CLAUDE.md - [ ] Переименовать в PriceForge - [ ] Убрать разделы про конфигуратор, проекты, экспорт, offline-first - [ ] Обновить API endpoints список - [ ] Обновить описание: "Администратор цен. Управление прайслистами, складскими справками, интеграция с B2B API." - [ ] Обновить commands: `go run ./cmd/pfs`, `make run`