Fork from QuoteForge → PriceForge
Renamed module path git.mchus.pro/mchus/quoteforge → git.mchus.pro/mchus/priceforge, renamed package quoteforge → priceforge, moved binary from cmd/qfs to cmd/pfs.
This commit is contained in:
78
todo.md
Normal file
78
todo.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# QuoteForge — План очистки (удаление admin pricing)
|
||||
|
||||
Цель: убрать всё, что связано с администрированием цен, складскими справками, алертами.
|
||||
Оставить: конфигуратор, проекты, read-only просмотр прайслистов, sync, offline-first.
|
||||
|
||||
---
|
||||
|
||||
## 1. Удалить файлы
|
||||
|
||||
- [ ] `internal/handlers/pricing.go` (40.6KB) — весь admin pricing UI
|
||||
- [ ] `internal/services/pricing/` — весь пакет расчёта цен
|
||||
- [ ] `internal/services/pricelist/` — весь пакет управления прайслистами
|
||||
- [ ] `internal/services/stock_import.go` — импорт складских справок
|
||||
- [ ] `internal/services/alerts/` — весь пакет алертов
|
||||
- [ ] `internal/warehouse/` — алгоритмы расчёта цен по складу
|
||||
- [ ] `web/templates/admin_pricing.html` (109KB) — страница admin pricing
|
||||
- [ ] `cmd/cron/` — cron jobs (cleanup-pricelists, update-prices, update-popularity)
|
||||
- [ ] `cmd/importer/` — утилита импорта данных
|
||||
|
||||
## 2. Упростить `internal/handlers/pricelist.go` (read-only)
|
||||
|
||||
Read-only методы (List, Get, GetItems, GetLotNames, GetLatest) уже работают
|
||||
только через `h.localDB` (SQLite) без `pricelist.Service`.
|
||||
|
||||
- [ ] Убрать поле `service *pricelist.Service` из структуры `PricelistHandler`
|
||||
- [ ] Изменить конструктор: `NewPricelistHandler(localDB *localdb.LocalDB)`
|
||||
- [ ] Удалить write-методы: `Create()`, `CreateWithProgress()`, `Delete()`, `SetActive()`, `CanWrite()`
|
||||
- [ ] Удалить метод `refreshLocalPricelistCacheFromServer()` (зависит от service)
|
||||
- [ ] Удалить import `pricelist` пакета
|
||||
- [ ] Оставить: `List()`, `Get()`, `GetItems()`, `GetLotNames()`, `GetLatest()`
|
||||
|
||||
## 3. Упростить `cmd/qfs/main.go`
|
||||
|
||||
- [ ] Удалить создание сервисов: `pricingService`, `alertService`, `pricelistService`, `stockImportService`
|
||||
- [ ] Удалить хэндлер: `pricingHandler`
|
||||
- [ ] Изменить создание `pricelistHandler`: `NewPricelistHandler(local)` (без service)
|
||||
- [ ] Удалить repositories: `priceRepo`, `alertRepo` (statsRepo оставить — nil-safe)
|
||||
- [ ] Удалить все routes `/api/admin/pricing/*` (строки ~1407-1430)
|
||||
- [ ] Из `/api/pricelists/*` оставить только read-only:
|
||||
- `GET ""` (List), `GET "/latest"`, `GET "/:id"`, `GET "/:id/items"`, `GET "/:id/lots"`
|
||||
- [ ] Удалить write routes: `POST ""`, `POST "/create-with-progress"`, `PATCH "/:id/active"`, `DELETE "/:id"`, `GET "/can-write"`
|
||||
- [ ] Удалить web page `/admin/pricing`
|
||||
- [ ] Исправить `/pricelists` — вместо redirect на admin/pricing сделать страницу
|
||||
- [ ] В `QuoteService` конструкторе: передавать `nil` для `pricingService`
|
||||
- [ ] Удалить imports: `pricing`, `pricelist`, `alerts` пакеты
|
||||
|
||||
## 4. Упростить `handlers/web.go`
|
||||
|
||||
- [ ] Удалить из `simplePages`: `admin_pricing.html`
|
||||
- [ ] Удалить метод: `AdminPricing()`
|
||||
- [ ] Оставить все остальные методы включая `Pricelists()` и `PricelistDetail()`
|
||||
|
||||
## 5. Упростить `base.html` (навигация)
|
||||
|
||||
- [ ] Убрать ссылку "Администратор цен"
|
||||
- [ ] Добавить ссылку "Прайслисты" (на `/pricelists`)
|
||||
- [ ] Оставить: "Мои проекты", "Прайслисты", sync indicator
|
||||
|
||||
## 6. Sync — оставить полностью
|
||||
|
||||
- Background worker: pull компоненты + прайслисты, push конфигурации
|
||||
- Все `/api/sync/*` endpoints остаются
|
||||
- Это ядро offline-first архитектуры
|
||||
|
||||
## 7. Верификация
|
||||
|
||||
- [ ] `go build ./cmd/qfs` — компилируется
|
||||
- [ ] `go vet ./...` — без ошибок
|
||||
- [ ] Запуск → `/configs` работает
|
||||
- [ ] `/pricelists` — read-only список работает
|
||||
- [ ] `/pricelists/:id` — детали работают
|
||||
- [ ] Sync с сервером работает
|
||||
- [ ] Нет ссылок на admin pricing в UI
|
||||
|
||||
## 8. Обновить CLAUDE.md
|
||||
- [ ] Убрать разделы про admin pricing, stock import, alerts, cron
|
||||
- [ ] Обновить API endpoints список
|
||||
- [ ] Обновить описание приложения
|
||||
Reference in New Issue
Block a user