// ══ src/services/agentWorkloadService.ts — Importe (Z. 3-4) ══
import { ExposeLeadStatus } from '../domain/exposeLead'
import type { ExposeLead } from '../domain/exposeLead'

// ══ URGENT_FROM (Z. 33-40) ══
const URGENT_FROM = {
  reminders: 5,
  visits: 4,
  expose: 5,
  dataGaps: 10,
} as const

/** Zeitfenster der Auswertung. */

// ══ Eingabefeld (Z. 48-55) ══
export interface AgentWorkloadInput {
  reminders: Reminder[]
  visits: VisitAssignment[]
  exposeLeads: ExposeLead[]
  leads: UnifiedLead[]
  properties: Property[]
}


// ══ Livias Auslastungsbahn (Z. 117-129) ══
  // ── Livia: weitergeleitete Leads ────────────────────────────────────────────
  const openExpose = input.exposeLeads.filter(l => l.status === ExposeLeadStatus.ACTIVE).length
  const livia: AgentWorkload = {
    agentId: 'livia',
    count: openExpose,
    label: `${openExpose} ${plural(openExpose, 'Exposé offen', 'Exposés offen')}`,
    tone: tone(openExpose, URGENT_FROM.expose),
    voice: openExpose === 0
      ? 'Kein Exposé offen. Leite mir einen Lead weiter, dann lege ich los.'
      : `${openExpose} ${plural(openExpose, 'Lead wartet', 'Leads warten')} auf ein Exposé von mir.`,
  }

  // ── Nora: Marktchancen ──────────────────────────────────────────────────────

// ══ src/hooks/useAgentWorkload.ts — alle Livia-Stellen ══
import { useExposeLeads } from './useExposeLeads'
  const { data: exposeLeads = [], isLoading: exposeLoading } = useExposeLeads()
  const data = useMemo(
    () => computeAgentWorkload({ reminders, visits, exposeLeads, leads, properties }),
    [reminders, visits, exposeLeads, leads, properties],
      remindersLoading || visitsLoading || exposeLoading ||
      leadsLoading || propertiesLoading,
  }
