import { NextRequest, NextResponse } from 'next/server'; import { prisma } from '@/lib/prisma'; import { withAuth } from '@/lib/auth'; // GET - Tüm mesajları getir (Auth gerekli) export async function GET(request: NextRequest) { return withAuth(request, async () => { try { const messages = await prisma.message.findMany({ orderBy: { createdAt: 'desc' }, }); return NextResponse.json(messages); } catch (error) { console.error('Messages fetch error:', error); return NextResponse.json( { error: 'Mesajlar alınırken hata oluştu' }, { status: 500 } ); } }); } // POST - Yeni mesaj gönder (Public - iletişim formu) export async function POST(request: NextRequest) { try { const data = await request.json(); const message = await prisma.message.create({ data: { name: data.name, email: data.email, phone: data.phone || '', subject: data.subject, type: data.type || 'contact', message: data.message, read: false, date: new Date().toISOString().split('T')[0], }, }); return NextResponse.json(message, { status: 201 }); } catch (error) { console.error('Message create error:', error); return NextResponse.json( { error: 'Mesaj gönderilirken hata oluştu' }, { status: 500 } ); } } // PUT - Mesajı okundu olarak işaretle (Auth gerekli) export async function PUT(request: NextRequest) { return withAuth(request, async () => { try { const data = await request.json(); const message = await prisma.message.update({ where: { id: data.id }, data: { read: data.read }, }); return NextResponse.json(message); } catch (error) { console.error('Message update error:', error); return NextResponse.json( { error: 'Mesaj güncellenirken hata oluştu' }, { status: 500 } ); } }); } // DELETE - Mesaj sil (Auth gerekli) export async function DELETE(request: NextRequest) { return withAuth(request, async () => { try { const { searchParams } = new URL(request.url); const id = searchParams.get('id'); if (!id) { return NextResponse.json({ error: 'ID gerekli' }, { status: 400 }); } await prisma.message.delete({ where: { id: parseInt(id) }, }); return NextResponse.json({ message: 'Mesaj silindi' }); } catch (error) { console.error('Message delete error:', error); return NextResponse.json( { error: 'Mesaj silinirken hata oluştu' }, { status: 500 } ); } }); }