<?php
/**
 * Migración: empresa matriz ASISMA enlazada a Control Empresas.
 *  - Claves de config: CE_EMPRESA_MATRIZ_ID (empresa madre en CE) y
 *    CE_LISTA_FRANQUICIADOS_ID (lista de precios general de respaldo).
 *  - empresas_franquiciados: ce_cliente_matriz_id (el franquiciado como
 *    CLIENTE dentro de la matriz) y ce_lista_precio_id (su lista de precios).
 *  - Tabla precios_franquiciado: precio por producto según la lista de
 *    precios de cada franquiciado (la llena el sincronizador de catálogo).
 *
 * Uso: C:\wamp\bin\php\php5.5.12\php.exe database\migracion_matriz_ce.php
 */
$env = include __DIR__ . '/../.env.php';
$pdo = new PDO(
    'mysql:host=' . $env['DB_HOST'] . ';dbname=' . $env['DB_NAME'] . ';charset=utf8mb4',
    $env['DB_USER'],
    $env['DB_PASS'],
    array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
);

// Claves de configuración
foreach (array(
    'CE_EMPRESA_MATRIZ_ID'      => 'ID de la empresa madre (ASISMA) en Control Empresas',
    'CE_LISTA_FRANQUICIADOS_ID' => 'ID de la lista de precios general para franquiciados en CE'
) as $clave => $descripcion) {
    $existe = $pdo->query("SELECT id FROM config_sistema WHERE clave = " . $pdo->quote($clave))->fetch();
    if ($existe) {
        echo "Clave $clave ya existe.\n";
    } else {
        $pdo->exec("INSERT INTO config_sistema (clave, valor, descripcion) VALUES (" .
            $pdo->quote($clave) . ", '', " . $pdo->quote($descripcion) . ")");
        echo "Clave $clave creada.\n";
    }
}

// Columnas en empresas_franquiciados
foreach (array(
    'ce_cliente_matriz_id' => 'INT NULL DEFAULT NULL',
    'ce_lista_precio_id'   => 'INT NULL DEFAULT NULL'
) as $columna => $definicion) {
    $col = $pdo->query("SHOW COLUMNS FROM empresas_franquiciados LIKE '$columna'")->fetch();
    if ($col) {
        echo "Columna $columna ya existe.\n";
    } else {
        $pdo->exec("ALTER TABLE empresas_franquiciados ADD COLUMN $columna $definicion");
        echo "Columna $columna agregada a empresas_franquiciados.\n";
    }
}

// Tabla de precios por franquiciado
$tabla = $pdo->query("SHOW TABLES LIKE 'precios_franquiciado'")->fetch();
if ($tabla) {
    echo "Tabla precios_franquiciado ya existe.\n";
} else {
    $pdo->exec(
        "CREATE TABLE precios_franquiciado (
            franquiciado_id INT NOT NULL,
            producto_id INT NOT NULL,
            precio_minimo DECIMAL(12,2) NOT NULL DEFAULT 0,
            precio_sugerido DECIMAL(12,2) NOT NULL DEFAULT 0,
            actualizado_at DATETIME NOT NULL,
            PRIMARY KEY (franquiciado_id, producto_id)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"
    );
    echo "Tabla precios_franquiciado creada.\n";
}

echo "Migración completada.\n";
