<?php
session_start();

// Configuración básica
$app_name = "Ruvemi: Pausas y Ejercicios";
$support_email = "help@ruvemi.com"; // Reemplaza con tu correo real de soporte

// Configuración de Supabase (Clave pública anon_key, segura para front/clientes)
$supabase_url = "https://api.ruvemi.com";
$supabase_anon_key = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzc5MTg2NzA3LCJleHAiOjE5MzY4NjY3MDd9.2_1FWKHzCFs6RgVs4_kQGXynkL9TF7n1tZfbBIh73zM";

$step = 1; // 1: Pedir email, 2: Pedir código, 3: Éxito
$success_message = "";
$error_message = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_POST['action']) && $_POST['action'] == 'send_code') {
        $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);

        if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
            // 1. Usar API de Supabase para enviar un OTP (One-Time Password) al correo
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, "$supabase_url/auth/v1/otp");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['email' => $email]));
            $headers = [
                "apikey: $supabase_anon_key",
                "Content-Type: application/json"
            ];
            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
            $result = curl_exec($ch);
            $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
            curl_close($ch);

            // Si el status es 200, se envió el código (o el email no está registrado, Supabase lo maneja según config)
            if ($status_code == 200) {
                $_SESSION['deletion_email'] = $email;
                $step = 2;
                $success_message = "Hemos enviado un código de 6 dígitos a <strong>$email</strong>. Por favor, introdúcelo abajo para verificar que eres el propietario de la cuenta.";
            } else {
                $error_message = "Hubo un error al contactar con el sistema de autenticación. Inténtalo más tarde.";
            }
        } else {
            $error_message = "Por favor, introduce un correo electrónico válido.";
        }
    } elseif (isset($_POST['action']) && $_POST['action'] == 'verify_code') {
        $code = $_POST['code'];
        $email = $_SESSION['deletion_email'] ?? '';

        if (!empty($email) && !empty($code)) {
            // 2. Usar API de Supabase para verificar el código
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, "$supabase_url/auth/v1/verify");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
                'email' => $email,
                'token' => $code,
                'type' => 'email'
            ]));
            $headers = [
                "apikey: $supabase_anon_key",
                "Content-Type: application/json"
            ];
            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
            $result = curl_exec($ch);
            $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
            curl_close($ch);

            $response = json_decode($result, true);

            if ($status_code == 200 && isset($response['access_token'])) {
                // ¡IDENTIDAD VERIFICADA EN SUPABASE!
                $user_id = $response['user']['id'];

                // --- Aquí tú (administrador) recibes la orden verificada ---
                $to = $support_email;
                $subject = "URGENTE: Solicitud de Eliminación VERIFICADA - " . $app_name;
                $message = "El usuario ha VERIFICADO su identidad mediante Supabase OTP y solicita eliminar sus datos.\n\n" .
                    "Email: " . $email . "\n" .
                    "User ID Supabase: " . $user_id . "\n\n" .
                    "Por favor, entra al dashboard de Supabase y elimina a este usuario de auth.users y tablas asociadas (si no tienes borrado en cascada configurado).";
                $email_headers = "From: admin@ruvemi.com\r\n" .
                    "Reply-To: " . $email . "\r\n";

                // mail($to, $subject, $message, $email_headers); // Descomenta en producción

                $step = 3;
                $success_message = "¡Identidad verificada correctamente! Hemos tramitado de forma segura tu solicitud de eliminación definitiva para la cuenta asociada a <strong>$email</strong>. Todos tus datos serán borrados de nuestros servidores en un plazo máximo de 30 días.";
                session_destroy();
            } else {
                $step = 2; // Volver a pedir código
                $error_message = "El código introducido es incorrecto o ha expirado. Por favor, inténtalo de nuevo.";
            }
        } else {
            $step = 1;
            $error_message = "La sesión expiró. Por favor, vuelve a introducir tu correo.";
        }
    }
}
?>
<!DOCTYPE html>
<html lang="es">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Eliminación de Datos - <?php echo $app_name; ?></title>
    <style>
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background-color: #f4f7f6;
            color: #333;
            max-width: 600px;
            margin: 40px auto;
            padding: 20px;
        }

        .container {
            background-color: #fff;
            padding: 40px;
            border-radius: 12px;
            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.05);
        }

        h1 {
            color: #2c3e50;
            font-size: 24px;
            text-align: center;
            margin-bottom: 20px;
        }

        p {
            line-height: 1.6;
            color: #555;
        }

        .alert {
            padding: 15px;
            margin-bottom: 25px;
            border-radius: 6px;
            font-size: 15px;
        }

        .alert-success {
            color: #155724;
            background-color: #d4edda;
            border: 1px solid #c3e6cb;
        }

        .alert-error {
            color: #721c24;
            background-color: #f8d7da;
            border: 1px solid #f5c6cb;
        }

        .form-group {
            margin-bottom: 20px;
        }

        label {
            display: block;
            margin-bottom: 8px;
            font-weight: 600;
            color: #444;
        }

        input[type="email"],
        input[type="text"] {
            width: 100%;
            padding: 12px;
            border: 1px solid #ccd0d5;
            border-radius: 6px;
            box-sizing: border-box;
            font-size: 16px;
        }

        button {
            width: 100%;
            background-color: #007bff;
            color: white;
            border: none;
            padding: 14px;
            border-radius: 6px;
            cursor: pointer;
            font-size: 16px;
            font-weight: 600;
            transition: background 0.3s;
        }

        button:hover {
            background-color: #0056b3;
        }

        .footer {
            margin-top: 30px;
            font-size: 13px;
            color: #999;
            text-align: center;
        }

        .badge {
            display: inline-block;
            padding: 4px 8px;
            border-radius: 12px;
            font-size: 12px;
            font-weight: bold;
            background: #eef2f5;
            color: #6c757d;
            margin-bottom: 15px;
        }
    </style>
</head>

<body>

    <div class="container">
        <div style="text-align: center;">
            <span class="badge">Privacidad y Seguridad</span>
        </div>
        <h1>Solicitud de Eliminación de Cuenta</h1>

        <?php if ($step == 1): ?>
            <p>Introduce el correo electrónico asociado a tu cuenta de <strong><?php echo $app_name; ?></strong>. Te
                enviaremos un código temporal para verificar que eres tú antes de procesar el borrado de datos.</p>

            <?php if ($error_message): ?>
                <div class="alert alert-error"><?php echo $error_message; ?></div>
            <?php endif; ?>

            <form method="POST" action="">
                <input type="hidden" name="action" value="send_code">
                <div class="form-group">
                    <label for="email">Correo electrónico de tu cuenta:</label>
                    <input type="email" id="email" name="email" required placeholder="tu-correo@ejemplo.com">
                </div>
                <button type="submit">Enviar código de verificación</button>
            </form>

        <?php elseif ($step == 2): ?>
            <?php if ($success_message): ?>
                <div class="alert alert-success"><?php echo $success_message; ?></div>
            <?php endif; ?>
            <?php if ($error_message): ?>
                <div class="alert alert-error"><?php echo $error_message; ?></div>
            <?php endif; ?>

            <form method="POST" action="">
                <input type="hidden" name="action" value="verify_code">
                <div class="form-group">
                    <label for="code">Código de verificación (8 dígitos):</label>
                    <input type="text" id="code" name="code" required placeholder="12345678" maxlength="8"
                        autocomplete="one-time-code">
                </div>
                <button type="submit">Verificar Identidad y Eliminar Datos</button>
            </form>

        <?php elseif ($step == 3): ?>
            <div class="alert alert-success">
                <?php echo $success_message; ?>
            </div>
            <p>Tus datos (información de perfil, historial de ejercicios y pausas programadas) se están eliminando de manera
                segura. Si tienes alguna duda, escríbenos a <a
                    href="mailto:<?php echo $support_email; ?>"><?php echo $support_email; ?></a>.</p>
        <?php endif; ?>

        <div class="footer">
            &copy; <?php echo date("Y"); ?> <?php echo $app_name; ?>. Todos los derechos reservados.
        </div>
    </div>

</body>

</html>
