-- =============================================
-- TABLAS PARA REQUISICIONES / TRANSFERENCIAS
-- =============================================

CREATE TABLE IF NOT EXISTS sucursales (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL,
    direccion VARCHAR(255) DEFAULT '',
    telefono VARCHAR(20) DEFAULT '',
    activo TINYINT(1) DEFAULT 1,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS transferencias (
    id INT AUTO_INCREMENT PRIMARY KEY,
    tipo ENUM('requisicion', 'envio_directo') NOT NULL,
    sucursal_origen_id INT NOT NULL,
    sucursal_origen_nombre VARCHAR(100) NOT NULL,
    sucursal_destino_id INT NOT NULL,
    sucursal_destino_nombre VARCHAR(100) NOT NULL,
    estado ENUM('pendiente', 'aprobada', 'rechazada', 'enviada', 'recibida', 'cancelada') DEFAULT 'pendiente',
    observaciones TEXT,
    fecha DATE NOT NULL,
    solicitado_por INT,
    aprobado_por INT,
    enviado_por INT,
    recibido_por INT,
    fecha_aprobacion DATETIME,
    fecha_envio DATETIME,
    fecha_recepcion DATETIME,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS transferencia_items (
    id INT AUTO_INCREMENT PRIMARY KEY,
    transferencia_id INT NOT NULL,
    tipo_item ENUM('producto', 'ingrediente') NOT NULL,
    item_id INT NOT NULL,
    item_nombre VARCHAR(150) NOT NULL,
    cantidad_solicitada DECIMAL(10,2) NOT NULL DEFAULT 0,
    cantidad_enviada DECIMAL(10,2) DEFAULT 0,
    cantidad_recibida DECIMAL(10,2) DEFAULT 0,
    unidad VARCHAR(20) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (transferencia_id) REFERENCES transferencias(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- =============================================
-- EJECUTAR ESTE MISMO SQL EN LA BD REMOTA
-- (solo las 3 tablas: sucursales, transferencias,
--  transferencia_items)
-- =============================================

-- Permiso para el módulo (solo BD local)
INSERT INTO permisos (codigo, nombre, descripcion, modulo)
VALUES ('ver_requisiciones', 'Ver Requisiciones', 'Acceso al módulo de requisiciones y transferencias', 'requisiciones')
ON DUPLICATE KEY UPDATE nombre = nombre;

-- Asignar permiso al perfil Administrador (id=1)
INSERT IGNORE INTO perfil_permisos (perfil_id, permiso_id)
SELECT 1, id FROM permisos WHERE codigo = 'ver_requisiciones';
