import type { APIRoute } from "astro";

function log(message: string, data?: unknown) {
  const timestamp = new Date().toISOString();
  console.log(
    `[LOGOUT API][${timestamp}] ${message}`,
    data ? JSON.stringify(data, null, 2) : "",
  );
}

export const POST: APIRoute = async ({ cookies }) => {
  const requestId = crypto.randomUUID();
  log(`=== Выход пользователя #${requestId} ===`);

  try {
    const hasCookie = cookies.has("pb_auth");
    log(hasCookie ? "Кука pb_auth найдена" : "Кука pb_auth не найдена");

    if (hasCookie) {
      // Идеальный способ удаления куки в Astro
      cookies.delete("pb_auth", { path: "/" });
    }

    log(`✅ Кука удалена, выход выполнен #${requestId}`);

    return new Response(
      JSON.stringify({ success: true, message: "Выход выполнен успешно" }),
      { status: 200, headers: { "Content-Type": "application/json" } },
    );
  } catch (error) {
    console.error(`[LOGOUT API][${requestId}] ERROR:`, error);
    return new Response(JSON.stringify({ error: "Ошибка при выходе" }), {
      status: 500,
      headers: { "Content-Type": "application/json" },
    });
  }
};
