<?php
/**
 * Migración: autorización de venta a nivel de PRODUCTO.
 * La matriz puede autorizar a un franquiciado:
 *   - una MARCA completa (tabla franquiciado_marcas, incluye productos futuros), o
 *   - PRODUCTOS específicos (tabla nueva franquiciado_productos).
 * Puede vender un producto = marca completa autorizada O producto suelto autorizado.
 * Los leads le caen según lo que puede vender (producto de interés; si el lead
 * solo trae marca, basta tener la marca completa o algún producto de ella).
 *
 * Uso: C:\wamp\bin\php\php5.5.12\php.exe database\migracion_franquiciado_productos.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)
);

$tabla = $pdo->query("SHOW TABLES LIKE 'franquiciado_productos'")->fetch();
if ($tabla) {
    echo "Tabla franquiciado_productos ya existe.\n";
} else {
    $pdo->exec(
        "CREATE TABLE franquiciado_productos (
            franquiciado_id INT NOT NULL,
            producto_id INT NOT NULL,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            PRIMARY KEY (franquiciado_id, producto_id),
            CONSTRAINT fk_fp_franquiciado FOREIGN KEY (franquiciado_id) REFERENCES franquiciados(id) ON DELETE CASCADE,
            CONSTRAINT fk_fp_producto FOREIGN KEY (producto_id) REFERENCES productos(id) ON DELETE CASCADE
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"
    );
    echo "Tabla franquiciado_productos creada.\n";
}
echo "Migración completada.\n";
