<?php
/**
 * Migrație: comenzi de marfă (Orders).
 *
 *  - `goods`       — catalogul de marfă (ce poți comanda): cod, denumire, UM, preț implicit.
 *  - `orders`      — antetul comenzii: număr, furnizor, dată, status, monedă, TVA.
 *  - `order_items` — liniile comenzii: marfă, cantitate, preț unitar.
 *
 * Liniile păstrează un snapshot al denumirii/codului/UM din momentul comenzii,
 * ca o comandă veche să rămână corectă dacă marfa e redenumită ulterior.
 */
return function (PDO $db): void {
    $db->exec("CREATE TABLE goods (
        id            INTEGER PRIMARY KEY AUTOINCREMENT,
        sku           TEXT,
        name          TEXT NOT NULL,
        unit          TEXT NOT NULL DEFAULT 'buc',
        default_price REAL,
        supplier      TEXT,
        notes         TEXT,
        is_active     INTEGER NOT NULL DEFAULT 1,
        created_at    TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
        updated_at    TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
    )");
    $db->exec("CREATE INDEX idx_goods_name ON goods(name)");

    $db->exec("CREATE TABLE orders (
        id            INTEGER PRIMARY KEY AUTOINCREMENT,
        order_no      TEXT NOT NULL UNIQUE,
        supplier      TEXT,
        order_date    TEXT NOT NULL,
        delivery_date TEXT,
        status        TEXT NOT NULL DEFAULT 'draft',
        currency      TEXT NOT NULL DEFAULT 'RON',
        vat_rate      REAL NOT NULL DEFAULT 0,
        notes         TEXT,
        created_at    TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
        updated_at    TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
    )");

    $db->exec("CREATE TABLE order_items (
        id         INTEGER PRIMARY KEY AUTOINCREMENT,
        order_id   INTEGER NOT NULL REFERENCES orders(id) ON DELETE CASCADE,
        goods_id   INTEGER REFERENCES goods(id) ON DELETE SET NULL,
        name       TEXT NOT NULL,
        sku        TEXT,
        unit       TEXT NOT NULL DEFAULT 'buc',
        qty        REAL NOT NULL DEFAULT 0,
        unit_price REAL NOT NULL DEFAULT 0,
        position   INTEGER NOT NULL DEFAULT 0
    )");
    $db->exec("CREATE INDEX idx_order_items_order ON order_items(order_id)");
};
