Files
PriceForge/todo.md

5.2 KiB
Raw Blame History

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