# 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_settings` - `local_components` - `local_pricelists`, `local_pricelist_items` - `local_configurations` - `local_projects` - `pending_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 ```bash # 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