import 'server-only'

import { createAdminClient } from '@/lib/supabase/admin'
import { isHhaSyncConfigured, syncTripToHha } from '@/lib/integrations/hha-trip-sync'

/** Append an audit record. Uses the admin client so audit rows are tamper-proof from clients. */
export async function logTripEvent(params: {
  tripId: string
  actorId?: string | null
  actorLabel: string
  action: string
  detail?: Record<string, unknown>
}) {
  const admin = createAdminClient()
  await admin.from('trip_events').insert({
    trip_id: params.tripId,
    actor_id: params.actorId ?? null,
    actor_label: params.actorLabel,
    action: params.action,
    detail: params.detail ?? null,
  })

  if (isHhaSyncConfigured()) {
    const result = await syncTripToHha(params.tripId)
    if (!result.ok) console.error('Workspace → GPT trip sync failed:', result.error)
  }
}
