import { API_PATHS } from "@/api/api-paths"; import { apiGet } from "@/api/api"; import { handleApiResponse, handlePaginatedResponse } from "@/api/handle-api-response"; import { mapEmployeeOptions } from "@/domain/work-orders/mappers/work-order-mapper"; import type { EmployeeOption } from "@/domain/work-orders/types/work-order"; async function fetchEmployeesFromList(): Promise { const data = await apiGet(API_PATHS.employee.getList, { searchParams: { page: 1, pageSize: 1000 }, }); const paginated = handlePaginatedResponse(data); const items = paginated.items.map((item) => { const record = (typeof item === "object" && item !== null ? item : {}) as Record< string, unknown >; const firstName = String(record.firstName ?? record.FirstName ?? ""); const lastName = String(record.lastName ?? record.LastName ?? ""); return { id: record.id ?? record.Id, name: `${firstName} ${lastName}`.trim(), }; }); return mapEmployeeOptions(items); } export async function fetchWorkOrderEmployees(): Promise { try { const data = await apiGet(API_PATHS.employee.dropdown); const items = handleApiResponse(data); return Array.isArray(items) ? mapEmployeeOptions(items) : []; } catch { return fetchEmployeesFromList(); } }