-- Modulo de Recetas para Productos
USE pos_torti;

-- Tabla de componentes de producto (cuando un producto usa otro producto)
CREATE TABLE IF NOT EXISTS producto_componentes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    producto_id INT NOT NULL,
    componente_id INT NOT NULL,
    cantidad DECIMAL(10,4) NOT NULL DEFAULT 1,
    unidad VARCHAR(20) DEFAULT 'pza',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (producto_id) REFERENCES productos(id) ON DELETE CASCADE,
    FOREIGN KEY (componente_id) REFERENCES productos(id) ON DELETE CASCADE,
    UNIQUE KEY unique_producto_componente (producto_id, componente_id),
    CHECK (producto_id != componente_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Modificar tabla producto_ingredientes para agregar unidad si no existe
ALTER TABLE producto_ingredientes
ADD COLUMN IF NOT EXISTS unidad VARCHAR(20) DEFAULT 'pza' AFTER cantidad;

-- Agregar campo tiene_receta a productos para identificar rapidamente cuales tienen receta
ALTER TABLE productos
ADD COLUMN IF NOT EXISTS tiene_receta TINYINT(1) DEFAULT 0 AFTER imagen;
