import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";

// Die Team-App lädt ihre Oberfläche lokal (Electron loadFile) und ruft diese
// API von dort per fetch(..., {credentials:"include"}) auf — für den Browser
// ist das ein Cross-Origin-Request mit opakem "null"-Origin (Datei-URLs haben
// keinen normalen Origin). CORS muss das explizit erlauben, inklusive
// Zugangsdaten (sonst kommt die rakku_session-Cookie nie an), und JSON-POSTs
// lösen einen Preflight (OPTIONS) aus, den jede Route beantworten muss.
export function corsHeaders(request: NextRequest): HeadersInit {
  const origin = request.headers.get("origin");
  return {
    "Access-Control-Allow-Origin": origin || "null",
    "Access-Control-Allow-Credentials": "true",
    "Access-Control-Allow-Methods": "GET, POST, PATCH, DELETE, OPTIONS",
    "Access-Control-Allow-Headers": "Content-Type",
    Vary: "Origin",
  };
}

export function corsPreflight(request: NextRequest) {
  return new NextResponse(null, { status: 204, headers: corsHeaders(request) });
}
