Introduces a new database layer to persist CSV transaction data in MariaDB, enabling both invoicing and sales reporting queries. This replaces the previous file-to-file-only processing. Changes: - Add sqlx, tokio, toml, anyhow, bigdecimal dependencies to Cargo.toml - Create config module for TOML-based configuration (database credentials) - Create db module with connection pool, models, and repository - Create commands module with 'import' subcommand for CSV ingestion - Refactor main.rs to use subcommand architecture (import/generate) - Add migration SQL file for manual database schema creation Schema (3 tables): - customers: customer_number, card_report_group (1=fleet, 3/4=retail) - cards: card_number, card_type, customer_id (nullable for anonymous) - transactions: full transaction data with FK to cards/customers Usage: cargo run -- import <csv-file> # Import to database cargo run -- generate <csv> <dir> # Generate HTML invoices (unchanged) Configuration: cp config.example.toml config.toml # Edit with database credentials mysql < migrations/001_initial_schema.sql # Create database first
7 lines
95 B
TOML
7 lines
95 B
TOML
[database]
|
|
host = "localhost"
|
|
port = 3306
|
|
user = "root"
|
|
password = ""
|
|
name = "rusty_petroleum"
|