import { NextRequest, NextResponse } from "next/server" import { requireAdmin } from "@/lib/api-auth" import { userService } from "@/lib/database" export const dynamic = "force-dynamic" export async function GET(request: NextRequest) { const auth = await requireAdmin(request) if (auth.error) return auth.error const { searchParams } = new URL(request.url) const email = searchParams.get("email")?.trim() const username = searchParams.get("username")?.trim() if (!email && !username) { return NextResponse.json( { error: "Provide either email or username" }, { status: 400 } ) } try { if (email) { const profile = await userService.getByEmail(email) if (!profile) { return NextResponse.json( { found: false, message: "User not found" }, { status: 404 } ) } return NextResponse.json({ found: true, user: { user_id: profile.user_id, user_name: profile.user_name, email: profile.email, user_type: profile.user_type, created_at: profile.created_at, }, }) } const { data, error } = await supabase .from("users") .select("user_id, user_name, email, user_type, created_at") .ilike("user_name", username!) .limit(5) if (error) { console.error("User lookup by username:", error) return NextResponse.json( { error: "Lookup failed" }, { status: 500 } ) } if (!data?.length) { return NextResponse.json( { found: false, message: "User not found" }, { status: 404 } ) } return NextResponse.json({ found: true, user: data.length === 1 ? data[0] : null, matches: data, }) } catch (e) { console.error("GET /api/admin/users/lookup:", e) return NextResponse.json( { error: e instanceof Error ? e.message : "Lookup failed" }, { status: 500 } ) } }