4.5 KiB
4.5 KiB
QuoteForge — План очистки (удаление admin pricing)
Цель: убрать всё, что связано с администрированием цен, складскими справками, алертами. Оставить: конфигуратор, проекты, read-only просмотр прайслистов, sync, offline-first.
1. Удалить файлы
internal/handlers/pricing.go(40.6KB) — весь admin pricing UIinternal/services/pricing/— весь пакет расчёта ценinternal/services/pricelist/— весь пакет управления прайслистамиinternal/services/stock_import.go— импорт складских справокinternal/services/alerts/— весь пакет алертовinternal/warehouse/— алгоритмы расчёта цен по складуweb/templates/admin_pricing.html(109KB) — страница admin pricingcmd/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 список
- Обновить описание приложения