import { NextRequest, NextResponse } from 'next/server'; import { prisma } from '@/lib/prisma'; import { getCurrentUser } from '@/lib/auth'; // POST - Marquer les messages comme lus export async function POST( request: NextRequest, { params }: { params: { id: string } } ) { try { const user = await getCurrentUser(); if (!user) { return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }); } const conversation = await prisma.conversation.findUnique({ where: { id: params.id }, include: { participants: true, }, }); if (!conversation) { return NextResponse.json({ error: 'Conversation non trouvée' }, { status: 404 }); } // Vérifier que l'utilisateur est participant const isParticipant = conversation.participants.some((p) => p.userId === user.id); if (!isParticipant) { return NextResponse.json({ error: 'Accès non autorisé' }, { status: 403 }); } // Mettre à jour lastReadAt pour l'utilisateur await prisma.conversationParticipant.updateMany({ where: { conversationId: params.id, userId: user.id, }, data: { lastReadAt: new Date(), }, }); return NextResponse.json({ success: true }); } catch (error) { console.error('Erreur lors de la mise à jour de la lecture:', error); return NextResponse.json({ error: 'Erreur serveur' }, { status: 500 }); } } // GET - Récupérer les informations de lecture pour une conversation export async function GET( request: NextRequest, { params }: { params: { id: string } } ) { try { const user = await getCurrentUser(); if (!user) { return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }); } const conversation = await prisma.conversation.findUnique({ where: { id: params.id }, include: { participants: { select: { userId: true, lastReadAt: true, }, }, }, }); if (!conversation) { return NextResponse.json({ error: 'Conversation non trouvée' }, { status: 404 }); } // Vérifier que l'utilisateur est participant const isParticipant = conversation.participants.some((p) => p.userId === user.id); if (!isParticipant) { return NextResponse.json({ error: 'Accès non autorisé' }, { status: 403 }); } return NextResponse.json({ participants: conversation.participants.map((p) => ({ userId: p.userId, lastReadAt: p.lastReadAt, })), }); } catch (error) { console.error('Erreur lors de la récupération des lectures:', error); return NextResponse.json({ error: 'Erreur serveur' }, { status: 500 }); } }