-- Initial schema for rusty-petroleum
-- Run this against your MariaDB database before importing data

CREATE DATABASE IF NOT EXISTS rusty_petroleum;
USE rusty_petroleum;

CREATE TABLE IF NOT EXISTS customers (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    customer_number VARCHAR(50) NOT NULL UNIQUE,
    card_report_group TINYINT UNSIGNED NOT NULL DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_customer_number (customer_number)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS cards (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    card_number VARCHAR(50) NOT NULL UNIQUE,
    card_type VARCHAR(50),
    customer_id INT UNSIGNED NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_card_number (card_number),
    INDEX idx_customer_id (customer_id),
    FOREIGN KEY (customer_id) REFERENCES customers(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS transactions (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    transaction_date DATETIME NOT NULL,
    batch_number VARCHAR(20) NOT NULL,
    amount DECIMAL(10,2) NOT NULL,
    volume DECIMAL(10,3) NOT NULL,
    price DECIMAL(8,4) NOT NULL,
    quality_code INT NOT NULL,
    quality_name VARCHAR(50) NOT NULL,
    station VARCHAR(20) NOT NULL,
    terminal VARCHAR(10) NOT NULL,
    pump VARCHAR(10) NOT NULL,
    receipt VARCHAR(20) NOT NULL,
    control_number VARCHAR(20),
    card_id INT UNSIGNED NOT NULL,
    customer_id INT UNSIGNED NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_transaction_date (transaction_date),
    INDEX idx_batch_number (batch_number),
    INDEX idx_card_id (card_id),
    INDEX idx_customer_id (customer_id),
    INDEX idx_station (station),
    FOREIGN KEY (card_id) REFERENCES cards(id),
    FOREIGN KEY (customer_id) REFERENCES customers(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
