// modules/helpdesk/helpdesk.message.service.ts import { FastifyInstance } from 'fastify' export async function addMessage( server: FastifyInstance, { tenant_id, conversation_id, author_user_id = null, direction = 'incoming', payload, raw_meta = null, external_message_id = null, }: { tenant_id: number conversation_id: string author_user_id?: string | null direction?: 'incoming' | 'outgoing' | 'internal' | 'system' payload: any raw_meta?: any external_message_id?: string } ) { if (!payload?.text) throw new Error('Message payload requires text content') const { data: message, error } = await server.supabase .from('helpdesk_messages') .insert({ tenant_id, conversation_id, author_user_id, direction, payload, raw_meta, created_at: new Date().toISOString(), }) .select() .single() if (error) throw error // Letzte Nachricht aktualisieren await server.supabase .from('helpdesk_conversations') .update({ last_message_at: new Date().toISOString() }) .eq('id', conversation_id) return message } export async function getMessages(server: FastifyInstance, conversation_id: string) { const { data, error } = await server.supabase .from('helpdesk_messages') .select('*') .eq('conversation_id', conversation_id) .order('created_at', { ascending: true }) if (error) throw error return data }