-- 006_create_order_items_table.sql
-- Lineas de pedido, proyectadas desde public.order_items.
--
-- Esta FK si se conserva: order_items solo se replica para pedidos que ya estan
-- en el read model (el filtro es "order_id IN (pedidos del usuario)"), asi que
-- el lado referenciado siempre esta presente y el ON DELETE CASCADE mantiene la
-- coherencia al aplicar un tombstone de pedido.

CREATE TABLE IF NOT EXISTS order_items (
    order_item_id   INTEGER PRIMARY KEY,
    order_id        INTEGER NOT NULL REFERENCES orders(order_id) ON DELETE CASCADE,
    product_id      INTEGER,
    product_name    TEXT,

    quantity        REAL NOT NULL DEFAULT 0,
    unit_price      REAL NOT NULL DEFAULT 0,
    discount        REAL NOT NULL DEFAULT 0,
    subtotal        REAL NOT NULL DEFAULT 0,
    is_promotional  INTEGER NOT NULL DEFAULT 0,
    sales_scales_id INTEGER,
    notes           TEXT,

    version         INTEGER NOT NULL DEFAULT 0,
    created_at      TEXT,
    updated_at      TEXT,
    deleted_at      TEXT
);

CREATE INDEX IF NOT EXISTS idx_order_items_order   ON order_items(order_id);
CREATE INDEX IF NOT EXISTS idx_order_items_product ON order_items(product_id);
