<?php
/**
 * Corrección rápida para Phone Number ID problemático
 * Fecha: 10 de enero de 2026
 * 
 * Este script corrige específicamente el Phone Number ID problemático '858157464051987'
 */

require_once 'config/config.php';

// Solo permitir ejecución directa (no via include)
if (basename(__FILE__) !== basename($_SERVER['SCRIPT_NAME'])) {
    die('Acceso no autorizado');
}

$message = '';
$error = '';
$currentPhoneId = WHATSAPP_PHONE_NUMBER_ID;
$isProblematic = ($currentPhoneId === '858157464051987');

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
    
    if ($_POST['action'] === 'update_phone_id') {
        $newPhoneId = trim($_POST['new_phone_id'] ?? '');
        $newToken = trim($_POST['whatsapp_token'] ?? '');
        
        if (empty($newPhoneId)) {
            $error = 'El Phone Number ID es obligatorio';
        } elseif (empty($newToken)) {
            $error = 'El Token de WhatsApp es obligatorio';
        } elseif (!preg_match('/^\d{10,20}$/', $newPhoneId)) {
            $error = 'Phone Number ID debe ser numérico (10-20 dígitos)';
        } elseif (!preg_match('/^EAA[A-Za-z0-9_-]+$/', $newToken)) {
            $error = 'Formato de token inválido. Debe empezar con EAA';
        } else {
            try {
                // Probar la nueva configuración antes de guardar
                $testUrl = "https://graph.facebook.com/v22.0/{$newPhoneId}";
                $context = stream_context_create([
                    'http' => [
                        'method' => 'GET',
                        'header' => "Authorization: Bearer {$newToken}\r\n"
                    ]
                ]);
                
                $testResponse = @file_get_contents($testUrl, false, $context);
                $httpCode = 200;
                
                if (isset($http_response_header)) {
                    foreach ($http_response_header as $header) {
                        if (strpos($header, 'HTTP/') === 0) {
                            $httpCode = (int) substr($header, 9, 3);
                        }
                    }
                }
                
                if ($httpCode !== 200) {
                    $error = 'No se puede validar el Phone Number ID. Verifique que sea correcto y que tenga permisos.';
                } else {
                    // Actualizar en base de datos
                    $pdo = createDbConnection();
                    
                    // Verificar si existe la tabla system_config
                    $tableExists = $pdo->query("SHOW TABLES LIKE 'system_config'")->rowCount() > 0;
                    
                    if ($tableExists) {
                        // Actualizar Phone Number ID
                        $stmt = $pdo->prepare("
                            INSERT INTO system_config (config_key, config_value, updated_at) 
                            VALUES (?, ?, NOW()) 
                            ON DUPLICATE KEY UPDATE config_value = VALUES(config_value), updated_at = NOW()
                        ");
                        $stmt->execute(['whatsapp_phone_number_id', $newPhoneId]);
                        
                        // Actualizar Token
                        $stmt->execute(['whatsapp_token', $newToken]);
                        
                        $message = "✅ Configuración actualizada correctamente. Phone Number ID: {$newPhoneId}";
                        
                        // Refrescar la página para mostrar la nueva configuración
                        header("Location: " . $_SERVER['PHP_SELF'] . "?updated=1");
                        exit;
                    } else {
                        $error = 'La tabla system_config no existe. Ejecute la instalación primero.';
                    }
                }
                
            } catch (Exception $e) {
                $error = 'Error al actualizar configuración: ' . $e->getMessage();
            }
        }
    }
}

// Si se redirigió después de actualizar
if (isset($_GET['updated'])) {
    $message = "✅ Configuración actualizada correctamente.";
}

?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Corrección Phone Number ID - WhatsApp Bot</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body class="bg-light">
    <div class="container mt-5">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card shadow">
                    <div class="card-header bg-danger text-white">
                        <h4 class="mb-0">
                            <i class="fas fa-exclamation-triangle"></i>
                            Corrección Phone Number ID Problemático
                        </h4>
                    </div>
                    
                    <div class="card-body">
                        <?php if ($message): ?>
                            <div class="alert alert-success">
                                <i class="fas fa-check-circle"></i> <?= htmlspecialchars($message) ?>
                            </div>
                        <?php endif; ?>
                        
                        <?php if ($error): ?>
                            <div class="alert alert-danger">
                                <i class="fas fa-exclamation-circle"></i> <?= htmlspecialchars($error) ?>
                            </div>
                        <?php endif; ?>
                        
                        <div class="alert alert-warning">
                            <h5><i class="fas fa-info-circle"></i> Problema Detectado</h5>
                            <p>El sistema está intentando usar el Phone Number ID: <code><?= htmlspecialchars($currentPhoneId) ?></code></p>
                            
                            <?php if ($isProblematic): ?>
                                <p class="text-danger fw-bold">
                                    ⚠️ Este ID está generando el error: "Object with ID '858157464051987' does not exist, cannot be loaded due to missing permissions, or does not support this operation"
                                </p>
                            <?php endif; ?>
                        </div>
                        
                        <div class="alert alert-info">
                            <h5><i class="fas fa-lightbulb"></i> Cómo obtener el Phone Number ID correcto:</h5>
                            <ol>
                                <li>Ve a <a href="https://developers.facebook.com/apps" target="_blank">Facebook for Developers</a></li>
                                <li>Selecciona tu app de WhatsApp Business</li>
                                <li>En el menú izquierdo, ve a "WhatsApp" → "API Setup"</li>
                                <li>Copia el "Phone Number ID" que aparece ahí</li>
                                <li>También copia tu "Access Token" si ha cambiado</li>
                            </ol>
                        </div>
                        
                        <form method="POST" class="mt-4">
                            <input type="hidden" name="action" value="update_phone_id">
                            
                            <div class="row">
                                <div class="col-md-6">
                                    <div class="mb-3">
                                        <label for="whatsapp_token" class="form-label">
                                            <i class="fas fa-key"></i> WhatsApp Token *
                                        </label>
                                        <input type="text" 
                                               class="form-control" 
                                               id="whatsapp_token" 
                                               name="whatsapp_token" 
                                               value="<?= htmlspecialchars(WHATSAPP_TOKEN === 'TU_TOKEN_DE_WHATSAPP_AQUI' ? '' : WHATSAPP_TOKEN) ?>"
                                               placeholder="EAA..." 
                                               required>
                                        <div class="form-text">Debe empezar con EAA</div>
                                    </div>
                                </div>
                                
                                <div class="col-md-6">
                                    <div class="mb-3">
                                        <label for="new_phone_id" class="form-label">
                                            <i class="fas fa-phone"></i> Nuevo Phone Number ID *
                                        </label>
                                        <input type="text" 
                                               class="form-control" 
                                               id="new_phone_id" 
                                               name="new_phone_id" 
                                               placeholder="123456789012345" 
                                               pattern="\d{10,20}"
                                               required>
                                        <div class="form-text">Solo números, 10-20 dígitos</div>
                                    </div>
                                </div>
                            </div>
                            
                            <div class="d-grid gap-2">
                                <button type="submit" class="btn btn-primary btn-lg">
                                    <i class="fas fa-save"></i>
                                    Actualizar Configuración
                                </button>
                            </div>
                        </form>
                        
                        <hr>
                        
                        <div class="text-center">
                            <a href="index.php" class="btn btn-secondary">
                                <i class="fas fa-arrow-left"></i> Volver al Panel
                            </a>
                            <a href="encontrar_phone_id.php" class="btn btn-info">
                                <i class="fas fa-search"></i> Encontrar Phone ID
                            </a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>