// modules/helpdesk/helpdesk.contact.service.ts import { FastifyInstance } from 'fastify' export async function getOrCreateContact( server: FastifyInstance, tenant_id: number, { email, phone, display_name, customer_id, contact_id }: { email?: string; phone?: string; display_name?: string; customer_id?: number; contact_id?: number } ) { if (!email && !phone) throw new Error('Contact must have at least an email or phone') // Bestehenden Kontakt prüfen const { data: existing, error: findError } = await server.supabase .from('helpdesk_contacts') .select('*') .eq('tenant_id', tenant_id) .or(`email.eq.${email || ''},phone.eq.${phone || ''}`) .maybeSingle() if (findError) throw findError if (existing) return existing // Anlegen const { data: created, error: insertError } = await server.supabase .from('helpdesk_contacts') .insert({ tenant_id, email, phone, display_name, customer_id, contact_id }) .select() .single() if (insertError) throw insertError return created }