import { type NextRequest, NextResponse } from "next/server"; import { requireAuth } from "@/lib/auth/middleware"; import { markAsRead } from "@/lib/prisma/queries/notifications"; import { secureLogger } from "@/lib/secure-logger"; /** * POST /api/notifications/[id]/read * Marca uma notificação específica como lida */ export async function POST( request: NextRequest, { params }: { params: Promise<{ id: string }> }, ) { try { const authResult = await requireAuth(request); if (authResult instanceof NextResponse) return authResult; const auth = authResult; const { id } = await params; const notificationId = parseInt(id, 10); if (Number.isNaN(notificationId)) { return NextResponse.json( { success: false, error: "ID de notificação inválido" }, { status: 400 }, ); } const success = await markAsRead(notificationId, auth.userId); if (!success) { return NextResponse.json( { success: false, error: "Notificação não encontrada ou já está lida" }, { status: 404 }, ); } return NextResponse.json( { success: true, message: "Notificação marcada como lida", }, { status: 200 }, ); } catch (error) { secureLogger.error("❌ Erro ao marcar notificação como lida", { error: error instanceof Error ? error.message : "Erro desconhecido", }); return NextResponse.json( { success: false, error: "Erro ao marcar notificação como lida" }, { status: 500 }, ); } }