import { NextResponse } from "next/server"; import { auth } from "@/lib/auth"; import { prisma } from "@/lib/prisma"; const SUPERADMIN_EMAIL = process.env.SUPERADMIN_EMAIL; async function requireSuperAdmin() { const session = await auth(); if (!session?.user?.id) return null; if (SUPERADMIN_EMAIL && session.user.email !== SUPERADMIN_EMAIL) return null; const user = await prisma.user.findUnique({ where: { id: session.user.id } }); if (!user?.isSuperAdmin && session.user.email !== SUPERADMIN_EMAIL) return null; return session; } function generateInviteCode(): string { return crypto.randomUUID().replace(/-/g, "").slice(0, 25); } export async function POST( _req: Request, { params }: { params: Promise<{ id: string }> } ) { const session = await requireSuperAdmin(); if (!session) return NextResponse.json({ error: "Non autorisé" }, { status: 403 }); const { id } = await params; const inviteCode = generateInviteCode(); await prisma.family.update({ where: { id }, data: { inviteCode }, }); return NextResponse.json({ inviteCode }); }