import { Injectable } from '@nestjs/common'; import { PrismaService } from '../../infrastructure/database/prisma.service'; @Injectable() export class NotificationsRepository { constructor(private readonly prisma: PrismaService) {} async findAll(userId: string, pagination?: { page?: number; limit?: number }) { const page = pagination?.page ?? 1; const limit = pagination?.limit ?? 20; return this.prisma.notification.findMany({ where: { userId }, orderBy: { createdAt: 'desc' }, skip: (page - 1) * limit, take: limit, }); } async create(data: { userId: string; type: string; title: string; body: string }) { return this.prisma.notification.create({ data: { userId: data.userId, type: data.type, title: data.title, content: data.body, }, }); } async findById(id: string) { return this.prisma.notification.findUnique({ where: { id } }); } async markRead(id: string) { return this.prisma.notification.update({ where: { id }, data: { readAt: new Date() }, }); } }