Unified Quote Journal (parts_log) v3

- New unified append-only quote log table parts_log replaces three
  separate log tables (stock_log, partnumber_log_competitors, lot_log)
- Migrations 042-049: extend supplier, create parts_log/import_formats/
  ignore_rules, rework qt_lot_metadata composite PK, add lead_time_weeks
  to pricelist_items, backfill data, migrate ignore rules
- New services: PartsLogBackfillService, ImportFormatService,
  UnifiedImportService; new world pricelist type (all supplier types)
- qt_lot_metadata PK changed to (lot_name, pricelist_type); all queries
  now filter WHERE pricelist_type='estimate'
- Fix pre-existing bug: qt_component_usage_stats column names
  quotes_last30d/quotes_last7d (no underscore) — added explicit gorm tags
- Bible: full table inventory, baseline schema snapshot, updated pricelist/
  data-rules/api/history/architecture docs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Mikhail Chusavitin
2026-03-21 17:25:54 +03:00
parent f73e3d144d
commit 5f8aec456b
40 changed files with 2294 additions and 124 deletions

View File

@@ -88,6 +88,35 @@
---
## Parts Log
| Method | URL | Description |
|--------|-----|-------------|
| POST | `/api/parts-log/backfill` | Trigger backfill job manually (admin only) — resolves lot_name=NULL rows in parts_log |
---
## Import Formats
| Method | URL | Description |
|--------|-----|-------------|
| GET | `/api/import-formats` | List all import formats |
| GET | `/api/import-formats/:code` | Get format by code |
| POST | `/api/import-formats` | Create or update import format |
| DELETE | `/api/import-formats/:code` | Delete import format |
---
## Ignore Rules
| Method | URL | Description |
|--------|-----|-------------|
| GET | `/api/ignore-rules` | List all ignore rules |
| POST | `/api/ignore-rules` | Create ignore rule |
| DELETE | `/api/ignore-rules/:id` | Delete ignore rule |
---
## Tasks (polling)
| Method | URL | Description |