91 lines
5.2 KiB
Markdown
91 lines
5.2 KiB
Markdown
# 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`
|