import { NextRequest, NextResponse } from "next/server" import { requireAdmin } from "@/lib/api-auth" import { userBusinessService } from "@/lib/admin-authorization-service" import { userService } from "@/lib/database" export const dynamic = "force-dynamic" export async function GET( request: NextRequest, { params }: { params: Promise<{ id: string }> } ) { const auth = await requireAdmin(request) if (auth.error) return auth.error const { id } = await params const businessId = parseInt(id, 10) if (Number.isNaN(businessId)) { return NextResponse.json({ error: "Invalid business id" }, { status: 400 }) } try { const links = await userBusinessService.listByBusinessId(businessId) const userIds = links.map((l) => l.user_id) if (userIds.length === 0) { return NextResponse.json([]) } const users = await Promise.all(userIds.map((id) => userService.getById(id))) const list = users.filter(Boolean).map((u) => ({ user_id: u!.user_id, user_name: u!.user_name, email: u!.email, user_type: u!.user_type, })) return NextResponse.json(list) } catch (e) { console.error("GET /api/admin/businesses/[id]/users:", e) return NextResponse.json( { error: e instanceof Error ? e.message : "Failed to list users" }, { status: 500 } ) } }