-- Tabla Principal de Ventas (Cabecera)
CREATE TABLE ventas (
    id INT AUTO_INCREMENT PRIMARY KEY,
    rut_usuario VARCHAR(12) NOT NULL COMMENT 'Cajero que realizó la venta',
    rut_cliente VARCHAR(15) NULL COMMENT 'Opcional, para fidelidad (Punto 4)',
    tipo_pedido ENUM('local', 'llevar') DEFAULT 'local',
    total_venta DECIMAL(10,2) NOT NULL,
    estado INT DEFAULT 1 COMMENT '1 = Activa, 0 = Anulada (Punto 7)',
    fecha_venta DATETIME DEFAULT CURRENT_TIMESTAMP,
    caja_id INT NULL COMMENT 'Para futuro control de apertura/cierre (Punto 11)'
);

-- Tabla de Detalle (Los productos del carrito)
CREATE TABLE ventas_detalle (
    id INT AUTO_INCREMENT PRIMARY KEY,
    venta_id INT NOT NULL,
    producto_id INT NOT NULL,
    nombre_producto VARCHAR(100) NOT NULL COMMENT 'Snapshot del nombre',
    precio_unitario DECIMAL(10,2) NOT NULL COMMENT 'Snapshot del precio',
    cantidad INT DEFAULT 1,
    notas TEXT NULL COMMENT 'Aquí guardamos si lleva leche vegetal, sin lactosa, o notas',
    FOREIGN KEY (venta_id) REFERENCES ventas(id) ON DELETE CASCADE
);

-- Tabla de Pagos Divididos (El array de pagos)
CREATE TABLE ventas_pagos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    venta_id INT NOT NULL,
    forma_pago_id INT NOT NULL,
    monto DECIMAL(10,2) NOT NULL,
    documento1 VARCHAR(100) NULL,
    documento2 VARCHAR(100) NULL,
    FOREIGN KEY (venta_id) REFERENCES ventas(id) ON DELETE CASCADE,
    FOREIGN KEY (forma_pago_id) REFERENCES formas_pago(id)
);