<?php
/**
 * Migración: API key de captación de leads por franquiciado.
 * Agrega empresas_franquiciados.api_key_leads y genera una llave única
 * para cada empresa franquiciada que no tenga.
 * Idempotente. Uso: php migracion_api_key_franquiciados.php
 */
$rootDir = dirname(dirname(__FILE__));
$env = include $rootDir . '/.env.php';
$m = new mysqli('127.0.0.1', $env['DB_USER'], $env['DB_PASS'], 'asisma_crm');
if ($m->connect_error) die("conexión: " . $m->connect_error . "\n");

$col = $m->query("SHOW COLUMNS FROM empresas_franquiciados LIKE 'api_key_leads'");
if ($col->num_rows === 0) {
    if (!$m->query("ALTER TABLE empresas_franquiciados ADD COLUMN api_key_leads VARCHAR(64) NULL DEFAULT NULL AFTER api_key_facturacion"))
        die("ALTER: " . $m->error . "\n");
    $m->query("ALTER TABLE empresas_franquiciados ADD UNIQUE INDEX idx_api_key_leads (api_key_leads)");
    echo "Columna api_key_leads creada.\n";
} else {
    echo "Columna api_key_leads ya existía.\n";
}

$res = $m->query("SELECT id, nombre_fantasia FROM empresas_franquiciados WHERE api_key_leads IS NULL OR api_key_leads = ''");
$n = 0;
while ($f = $res->fetch_assoc()) {
    $llave = 'asisma_lead_' . bin2hex(openssl_random_pseudo_bytes(20));
    if (!$m->query("UPDATE empresas_franquiciados SET api_key_leads = '" . $m->real_escape_string($llave) . "' WHERE id = " . (int)$f['id']))
        die("UPDATE id {$f['id']}: " . $m->error . "\n");
    echo "  {$f['nombre_fantasia']} (id {$f['id']}): llave generada\n";
    $n++;
}
echo "Llaves generadas: $n. Migración completada.\n";
