- Add price_updated_at field to qt_configurations table to track when prices were last updated
- Add RefreshPrices() method in configuration service to update all component prices with current values from database
- Add POST /api/configs/:uuid/refresh-prices API endpoint for price updates
- Add "Refresh Prices" button in configurator UI next to Save button
- Display last price update timestamp in human-readable format (e.g., "5 min ago", "2 hours ago")
- Create migration 004_add_price_updated_at.sql for database schema update
- Update CLAUDE.md documentation with new API endpoint and schema changes
- Add MIGRATION_PRICE_REFRESH.md with detailed migration instructions
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Основные изменения:
1. CSV экспорт и веб-интерфейс:
- Компоненты теперь сортируются по иерархии категорий (display_order)
- Категории отображаются в правильном порядке: BB, CPU, MEM, GPU и т.д.
- Компоненты без категории отображаются в конце
2. Раздел PCI в конфигураторе:
- Разделен на секции: GPU/DPU, NIC/HCA, HBA
- Улучшена навигация и выбор компонентов
3. Сохранение "своей цены":
- Добавлено поле custom_price в модель Configuration
- Создана миграция 002_add_custom_price.sql
- "Своя цена" сохраняется при сохранении конфигурации
- При загрузке конфигурации восстанавливается сохраненная цена
4. Автосохранение:
- Конфигурация автоматически сохраняется через 1 секунду после изменений
- Debounce предотвращает избыточные запросы
- Автосохранение работает для всех изменений (компоненты, количество, цена)
5. Дополнительно:
- Добавлен cmd/importer для импорта метаданных из таблицы lot
- Создан скрипт apply_migration.sh для применения миграций
- Оптимизирована работа с категориями в ExportService
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Добавлено отображение последней полученной цены в окне настройки цены
- Добавлен функционал переименования конфигураций (PATCH /api/configs/:uuid/rename)
- Изменён формат имени файла при экспорте: "YYYY-MM-DD NAME SPEC.ext"
- Исправлена сортировка компонентов: перенесена на сервер для корректной работы с пагинацией
- Добавлен расчёт popularity_score на основе котировок из lot_log
- Исправлена потеря настроек (метод, период, коэффициент) при пересчёте цен
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add tab-based configurator (Base, Storage, PCI, Power, Accessories, Other)
- Base tab: single-select with autocomplete for MB, CPU, MEM
- Other tabs: multi-select with autocomplete and quantity input
- Table view with LOT, Description, Price, Quantity, Total columns
- Add configuration list page with create modal (opportunity number)
- Remove Excel export functionality and excelize dependency
- Increase component list limit from 100 to 5000
- Add web templates (base, index, configs, login, admin_pricing)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Go module with Gin, GORM, JWT, excelize dependencies
- Configuration loading from YAML with all settings
- GORM models for users, categories, components, configurations, alerts
- Repository layer for all entities
- Services: auth (JWT), pricing (median/average/weighted), components,
quotes, configurations, export (CSV/XLSX), alerts
- Middleware: JWT auth, role-based access, CORS
- HTTP handlers for all API endpoints
- Main server with dependency injection and graceful shutdown
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>