import { useQuery } from '@tanstack/react-query'; import { apiFetch } from './api'; export interface TeamMember { id: string; firstName: string; lastName: string; positionName?: string; departmentName?: string; departmentOrder?: number; positionOrder?: number; } export interface Department { name: string; order: number; members: TeamMember[]; } export function useTeam() { return useQuery({ queryKey: ['team'], queryFn: () => apiFetch('/api/employees/public'), staleTime: 1000 * 60 * 5, }); } export function groupByDepartment(members: TeamMember[]): Department[] { const map = new Map(); for (const m of members) { const key = m.departmentName ?? 'Sin departamento'; if (!map.has(key)) { map.set(key, { name: key, order: m.departmentOrder ?? 99, members: [] }); } map.get(key)!.members.push(m); } return Array.from(map.values()).sort((a, b) => a.order - b.order); }