<?php
// Simula la llamada que hace la app al send-bank-verify.php
// Genera un token JWT válido y hace la petición
header('Content-Type: application/json');
require_once __DIR__ . '/../config.php';

// Obtener el primer distribuidor con email
$db = getDB();
$row = $db->query("SELECT id_inver, nombre, email FROM inversionista WHERE email IS NOT NULL AND email != '' LIMIT 1")->fetch(PDO::FETCH_ASSOC);

if (!$row) {
    echo json_encode(['error' => 'No hay distribuidores con email']);
    exit;
}

// Generar token JWT válido (igual que hace login.php)
$header  = base64_encode(json_encode(['alg' => 'HS256', 'typ' => 'JWT']));
$payload = base64_encode(json_encode([
    'idinv' => $row['id_inver'],
    'exp'   => time() + 3600,
]));
$header  = rtrim(strtr($header,  '+/', '-_'), '=');
$payload = rtrim(strtr($payload, '+/', '-_'), '=');
$sig     = rtrim(strtr(base64_encode(hash_hmac('sha256', "$header.$payload", JWT_SECRET, true)), '+/', '-_'), '=');
$token   = "$header.$payload.$sig";

// Hacer petición POST al send-bank-verify.php con el token
$ch = curl_init('https://api.sistemarrb.com/profile/send-bank-verify.php');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => json_encode(['canal' => 'email']),
    CURLOPT_HTTPHEADER     => [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $token,
    ],
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_TIMEOUT        => 20,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curlErr  = curl_error($ch);
curl_close($ch);

echo json_encode([
    'distribuidor_id' => $row['id_inver'],
    'email_mask'      => substr($row['email'], 0, 3) . '***',
    'token_generado'  => substr($token, 0, 20) . '...',
    'http_code'       => $httpCode,
    'curl_error'      => $curlErr,
    'response'        => json_decode($response, true) ?? $response,
], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
