import { NextResponse } from "next/server";
import { apiFetch } from "@/lib/api/client";
import { clearSession, getSession } from "@/lib/auth/session";

// Logout côté mobile JWT : révoque le refresh_token côté backend (qui le
// supprime de mobile_refresh_tokens). L'access_token reste valide jusqu'à son
// expiration ~15min. Si le refresh_token est absent (vieille session non
// migrée), on se contente du clear cookie local.

const DEVICE_ID = "sysop-panel";

export async function POST() {
  const session = await getSession();
  if (session?.refreshToken) {
    try {
      await apiFetch("/mobile/logout.php", {
        method: "POST",
        token: session.token,
        body: {
          refresh_token: session.refreshToken,
          device_id: DEVICE_ID,
        },
      });
    } catch {
      // Déconnexion locale même si le backend renvoie une erreur — pas la
      // peine de bloquer l'utilisateur sur une révocation ratée.
    }
  }
  await clearSession();
  return NextResponse.json({ success: true });
}
