import { NextResponse, type NextRequest } from "next/server";
import { auth } from "@/auth";
import { touchPresence, getPresenceInfoMap } from "@/lib/presence.server";

/** Heartbeat: markiert den eingeloggten Nutzer als aktiv. */
export async function POST() {
  const session = await auth();
  if (!session?.user?.id) {
    return NextResponse.json({ error: "unauthorized" }, { status: 401 });
  }
  await touchPresence(session.user.id);
  return NextResponse.json({ ok: true });
}

/** Aktueller Präsenzstatus für ?ids=a,b,c (Live-Aktualisierung im Client). */
export async function GET(req: NextRequest) {
  const session = await auth();
  if (!session?.user?.id) {
    return NextResponse.json({ error: "unauthorized" }, { status: 401 });
  }
  const idsParam = req.nextUrl.searchParams.get("ids") ?? "";
  const ids = idsParam.split(",").map((s) => s.trim()).filter(Boolean).slice(0, 100);
  const presence = await getPresenceInfoMap(ids);
  return NextResponse.json({ presence });
}
