<?php
require_once __DIR__ . '/../bootstrap.php';

use Gestoreasy\Core\Tenant\ConnectionManager;

function runMigration(string $filePath): void {
    if (!is_file($filePath)) {
        echo "Arquivo de migration não encontrado: {$filePath}\n";
        exit(1);
    }

    $sql = file_get_contents($filePath);
    if ($sql === false) {
        echo "Falha ao ler o arquivo de migration: {$filePath}\n";
        exit(1);
    }

    $pdo = ConnectionManager::forTenant();
    // Divide por ';' de forma simples, removendo linhas em branco
    $statements = array_filter(array_map('trim', explode(';', $sql)));
    $ok = 0; $fail = 0;
    foreach ($statements as $stmtSql) {
        if ($stmtSql === '') { continue; }
        try {
            $pdo->exec($stmtSql);
            $ok++;
        } catch (\Throwable $e) {
            $fail++;
            echo "Aviso: falha ao executar statement: " . $e->getMessage() . "\n";
        }
    }
    echo "Migration processada: {$filePath} (sucesso: {$ok}, falhas: {$fail})\n";
}

$fileArg = $argv[1] ?? '';
if ($fileArg === '') {
    echo "Uso: php scripts/apply_migration.php <caminho_arquivo_sql>\n";
    echo "Exemplo: php scripts/apply_migration.php modules/Fiscal/migrations/003_fiscal_notifications.sql\n";
    exit(1);
}

runMigration($fileArg);