- 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>
PriceForge
Price and pricelist manager for MariaDB.
- Main UI: http://127.0.0.1:8084/admin/pricing
- Architecture docs:
bible/
Quick Start
cp config.example.yaml config.yaml
# Edit config.yaml: database.host, name, user, password
make run
Commands
make run # dev server
make build # local build
make build-release # release build
make build-all # cross-compile Linux/macOS/Windows
make test # run tests
go run ./cmd/pfs -migrate # run migrations
./bin/pfs -version # check version
./scripts/release.sh # build release archives
Requirements
- Go 1.22+
- MariaDB / MySQL
macOS Gatekeeper
xattr -d com.apple.quarantine /path/to/pfs-darwin-arm64
Description
Languages
Go
47.2%
CSS
25.1%
JavaScript
16%
HTML
11.3%
Makefile
0.2%
Other
0.2%