<?php
/**
 * Regenerar Token de Invitado
 */

header('Content-Type: application/json');

$eventoId = getEventoId();
$id = $_GET['id'] ?? 0;

if (!$id) {
    echo json_encode(['success' => false, 'message' => 'ID de invitado no válido']);
    exit;
}

// Verificar que el invitado pertenece al evento
$stmt = $pdo->prepare("SELECT id FROM invitados WHERE id = ? AND evento_id = ?");
$stmt->execute([$id, $eventoId]);
$invitado = $stmt->fetch(PDO::FETCH_ASSOC);

if (!$invitado) {
    echo json_encode(['success' => false, 'message' => 'Invitado no encontrado']);
    exit;
}

try {
    // Generar nuevo token corto (16 caracteres)
    $nuevoToken = generarTokenInvitado($eventoId, 16);
    
    // Actualizar token
    $stmt = $pdo->prepare("UPDATE invitados SET token = ? WHERE id = ?");
    $stmt->execute([$nuevoToken, $id]);
    
    registrarLog($eventoId, 'invitado', 'Regenerar Token', "Token regenerado para invitado ID: $id");
    
    // Generar enlace completo con ID y token
    $enlace = generarEnlaceInvitacion($id, $nuevoToken);
    
    echo json_encode([
        'success' => true, 
        'message' => 'Token regenerado correctamente', 
        'token' => $nuevoToken,
        'enlace' => $enlace
    ]);
} catch (Exception $e) {
    echo json_encode(['success' => false, 'message' => 'Error al regenerar token: ' . $e->getMessage()]);
}


