// routes/notifications.routes.ts import { FastifyInstance } from 'fastify'; import { NotificationService, UserDirectory } from '../modules/notification.service'; // Beispiel: E-Mail aus eigener User-Tabelle laden const getUserDirectory: UserDirectory = async (server:FastifyInstance, userId, tenantId) => { const { data, error } = await server.supabase .from('auth_users') .select('email') .eq('id', userId) .maybeSingle(); if (error || !data) return null; return { email: data.email }; }; export default async function notificationsRoutes(server: FastifyInstance) { // wichtig: server.supabase ist über app verfügbar const svc = new NotificationService(server, getUserDirectory); server.post('/notifications/trigger', async (req, reply) => { try { const res = await svc.trigger(req.body as any); reply.send(res); } catch (err: any) { server.log.error(err); reply.code(500).send({ error: err.message }); } }); }