import { NextRequest, NextResponse } from 'next/server' import prisma from '@/lib/prisma' export async function POST(request: NextRequest) { try { const { slug, reason, details } = await request.json() if (!slug || !reason) { return NextResponse.json({ error: 'slug and reason required' }, { status: 400 }) } const note = await prisma.note.findFirst({ where: { publicSlug: slug, isPublic: true }, select: { id: true, userId: true }, }) if (!note) return NextResponse.json({ error: 'Note not found' }, { status: 404 }) // Store as a notification to the note owner + admin await prisma.notification.create({ data: { userId: note.userId, type: 'content_report', title: `Signalement : ${reason}`, message: details || `Un visiteur a signalé votre note publiée pour: ${reason}`, actionUrl: `/p/${slug}`, relatedId: note.id, }, }).catch(() => {}) // Also notify admins const admins = await prisma.user.findMany({ where: { role: 'ADMIN' }, select: { id: true }, }) for (const admin of admins) { await prisma.notification.create({ data: { userId: admin.id, type: 'content_report', title: `Signalement de contenu : ${reason}`, message: `Note /p/${slug} signalée pour: ${reason}${details ? ` — ${details}` : ''}`, actionUrl: `/admin/published`, relatedId: note.id, }, }).catch(() => {}) } return NextResponse.json({ success: true }) } catch (error: any) { return NextResponse.json({ error: error.message }, { status: 500 }) } }