Added new design to modals
This commit is contained in:
62
lib/notifications.ts
Normal file
62
lib/notifications.ts
Normal file
@@ -0,0 +1,62 @@
|
||||
import { prisma } from './prisma';
|
||||
|
||||
export interface CreateNotificationParams {
|
||||
userId: string;
|
||||
type: 'message' | 'trajet_created' | 'trajet_cancelled' | 'trajet_completed';
|
||||
title: string;
|
||||
message: string;
|
||||
link?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Crée une notification pour un utilisateur
|
||||
*/
|
||||
export async function createNotification(params: CreateNotificationParams) {
|
||||
try {
|
||||
await prisma.notification.create({
|
||||
data: {
|
||||
userId: params.userId,
|
||||
type: params.type,
|
||||
title: params.title,
|
||||
message: params.message,
|
||||
link: params.link || null,
|
||||
},
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la création de la notification:', error);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Crée des notifications pour tous les utilisateurs sauf celui qui a déclenché l'action
|
||||
*/
|
||||
export async function createNotificationForAllUsers(
|
||||
params: Omit<CreateNotificationParams, 'userId'>,
|
||||
excludeUserId?: string
|
||||
) {
|
||||
try {
|
||||
const users = await prisma.user.findMany({
|
||||
where: excludeUserId
|
||||
? {
|
||||
id: {
|
||||
not: excludeUserId,
|
||||
},
|
||||
}
|
||||
: undefined,
|
||||
select: {
|
||||
id: true,
|
||||
},
|
||||
});
|
||||
|
||||
await Promise.all(
|
||||
users.map((user) =>
|
||||
createNotification({
|
||||
...params,
|
||||
userId: user.id,
|
||||
})
|
||||
)
|
||||
);
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la création des notifications:', error);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user