import useSWR from 'swr'; import { fetcher, getTenantUrl } from './api'; import type { Tenant, Machine, MachineDetail, EquipmentPart } from './types'; export function useTenants() { const { data, error, isLoading, mutate } = useSWR<{ tenants: Tenant[] }>( '/api/tenants', fetcher, ); return { tenants: data?.tenants || [], error, isLoading, mutate, }; } export function useTenantData(path: string, tenantId?: string) { const url = tenantId ? getTenantUrl(path, tenantId) : null; const { data, error, isLoading, mutate } = useSWR(url, fetcher); return { data: data ?? null, error, isLoading, mutate, }; } export function useMachines(tenantId?: string) { const url = tenantId ? `/api/${tenantId}/machines` : null; const { data, error, isLoading, mutate } = useSWR<{ machines: Machine[] }>( url, fetcher, { refreshInterval: 30000, dedupingInterval: 2000 }, ); return { machines: data?.machines || [], error, isLoading, mutate, }; } export function useMachine(tenantId?: string, machineId?: string) { const url = tenantId && machineId ? `/api/${tenantId}/machines/${machineId}` : null; const { data, error, isLoading, mutate } = useSWR( url, fetcher, { refreshInterval: 30000, dedupingInterval: 2000 }, ); return { machine: data ?? null, error, isLoading, mutate, }; } export function useEquipmentParts(tenantId?: string, machineId?: string) { const url = tenantId && machineId ? `/api/${tenantId}/machines/${machineId}/parts` : null; const { data, error, isLoading, mutate } = useSWR<{ parts: EquipmentPart[] }>( url, fetcher, { refreshInterval: 30000, dedupingInterval: 2000 }, ); return { parts: data?.parts || [], error, isLoading, mutate, }; }