2.5 KiB
2.5 KiB
QuoteForge - Claude Code Instructions
Overview
Корпоративный конфигуратор серверов с offline-first архитектурой. Приложение работает через локальную SQLite базу, синхронизация с MariaDB выполняется фоново.
Product Scope
- Конфигуратор компонентов и расчёт КП
- Проекты и конфигурации
- Read-only просмотр прайслистов из локального кэша
- Sync (pull компонентов/прайслистов, push локальных изменений)
Из области исключены:
- admin pricing UI/API
- stock import
- alerts
- cron/importer утилиты
Architecture
- Local-first: чтение и запись происходят в SQLite
- MariaDB используется как сервер синхронизации
- Background worker: периодический sync push+pull
Key SQLite Data
connection_settingslocal_componentslocal_pricelists,local_pricelist_itemslocal_configurationslocal_projectspending_changes
API Endpoints
| Group | Endpoints |
|---|---|
| Setup | GET /setup, POST /setup, POST /setup/test, GET /setup/status |
| Components | GET /api/components, GET /api/components/:lot_name, GET /api/categories |
| Quote | POST /api/quote/validate, POST /api/quote/calculate, POST /api/quote/price-levels |
| Pricelists (read-only) | GET /api/pricelists, GET /api/pricelists/latest, GET /api/pricelists/:id, GET /api/pricelists/:id/items, GET /api/pricelists/:id/lots |
| Configs | CRUD + refresh/clone/reactivate/rename/project binding via /api/configs/* |
| Projects | CRUD + nested configs via /api/projects/* |
| Sync | GET /api/sync/status, GET /api/sync/readiness, GET /api/sync/info, GET /api/sync/users-status, POST /api/sync/components, POST /api/sync/pricelists, POST /api/sync/all, POST /api/sync/push, GET /api/sync/pending, GET /api/sync/pending/count |
| Export | POST /api/export/csv |
Web Routes
/configs/configurator/projects/projects/:uuid/pricelists/pricelists/:id/setup
Commands
# Development
go run ./cmd/qfs
make run
# Build
make build-release
CGO_ENABLED=0 go build -o bin/qfs ./cmd/qfs
# Verification
go build ./cmd/qfs
go vet ./...
Code Style
- gofmt
- structured logging (
slog) - explicit error wrapping with context