fetchAll( "SELECT u.id, u.phone_number, u.name, u.email, u.status, u.created_at, u.updated_at, COUNT(c.id) as total_messages, MAX(c.created_at) as last_activity FROM users u LEFT JOIN conversations c ON u.id = c.user_id GROUP BY u.id ORDER BY u.created_at DESC" ); // Crear el archivo CSV $output = fopen('php://output', 'w'); // BOM para UTF-8 fprintf($output, chr(0xEF).chr(0xBB).chr(0xBF)); // Encabezados fputcsv($output, [ 'ID', 'Teléfono', 'Nombre', 'Email', 'Estado', 'Total Mensajes', 'Última Actividad', 'Fecha Registro' ], ';'); // Datos foreach ($users as $user) { fputcsv($output, [ $user['id'], $user['phone_number'], $user['name'] ?? 'Sin nombre', $user['email'] ?? 'Sin email', $user['status'], $user['total_messages'], $user['last_activity'] ? date('d/m/Y H:i', strtotime($user['last_activity'])) : 'Nunca', date('d/m/Y H:i', strtotime($user['created_at'])) ], ';'); } fclose($output); } catch (Exception $e) { error_log("Error in export_users.php: " . $e->getMessage()); // Cambiar headers para error header('Content-Type: application/json; charset=utf-8'); header('Content-Disposition: inline'); http_response_code(500); echo json_encode(['error' => 'Error interno del servidor']); } ?>