import { NextResponse } from "next/server";
import { getSessionUser } from "@/lib/auth/get-session-user";
import { ensureFreshAccountTokens } from "@/lib/social/ensure-publish-tokens";
import {
  loadProjectSocialAccounts,
  maskAccountsForClient,
} from "@/lib/storage/social-accounts";

export async function GET(
  _request: Request,
  { params }: { params: Promise<{ projectId: string }> },
) {
  const user = await getSessionUser();
  if (!user) return NextResponse.json({ error: "Unauthorized" }, { status: 401 });

  const { projectId } = await params;
  const accounts = await ensureFreshAccountTokens(user.id, projectId);
  const masked = maskAccountsForClient(accounts);

  if (!accounts.length) {
    const legacy = await loadProjectSocialAccounts(user.id, projectId);
    return NextResponse.json({ accounts: maskAccountsForClient(legacy) });
  }

  return NextResponse.json({ accounts: masked });
}
