import { useMemo } from 'react' import { useReminders } from './useReminders' import { useVisitAssignments } from './useVisitAssignments' import { useExposeLeads } from './useExposeLeads' import { useUnifiedLeads } from './useUnifiedLeads' import { useProperties } from './useProperties' import { computeAgentWorkload } from '../services/agentWorkloadService' import type { AgentWorkload } from '../domain/agentWorkload' /** * Aktuelle Auslastung der fünf digitalen Mitarbeitenden (Runde 5). * * Der Hook sammelt nur die Bestände ein; was daraus wird, entscheidet * `agentWorkloadService` — Schwellen, Zeitfenster und Formulierungen sind * fachliche Festlegungen und gehören nicht in die Oberflächenschicht * (CLAUDE.md §4.2/§5.2). */ export function useAgentWorkload(): { data: Record; isLoading: boolean } { const { data: reminders = [], isLoading: remindersLoading } = useReminders() const { data: visits = [], isLoading: visitsLoading } = useVisitAssignments() const { data: exposeLeads = [], isLoading: exposeLoading } = useExposeLeads() const { data: leads, isLoading: leadsLoading } = useUnifiedLeads() const { data: properties = [], isLoading: propertiesLoading } = useProperties() const data = useMemo( () => computeAgentWorkload({ reminders, visits, exposeLeads, leads, properties }), [reminders, visits, exposeLeads, leads, properties], ) return { data, isLoading: remindersLoading || visitsLoading || exposeLoading || leadsLoading || propertiesLoading, } }