import { type NextRequest, NextResponse } from "next/server"; import { incrementViews } from "@/lib/prisma/queries/listings"; import { secureLogger } from "@/lib/secure-logger"; /** * POST /api/listings/[id]/views * Incrementa contador de views de um anúncio * Não requer autenticação (público) */ export async function POST( _request: NextRequest, { params }: { params: Promise<{ id: string }> }, ) { try { const { id } = await params; const listingId = parseInt(id, 10); if (Number.isNaN(listingId)) { return NextResponse.json( { success: false, error: "ID de anúncio inválido", }, { status: 400 }, ); } // Incrementar views await incrementViews(listingId); return NextResponse.json( { success: true, message: "View incrementada", }, { status: 200 }, ); } catch (error) { secureLogger.error("❌ Erro ao incrementar views", { error: error instanceof Error ? error.message : "Erro desconhecido", stack: error instanceof Error ? error.stack : undefined, }); return NextResponse.json( { success: false, error: "Erro ao incrementar views", }, { status: 500 }, ); } }