import { API_PATHS } from "@/api/api-paths"; import { apiGet } from "@/api/api"; import { handleApiResponse } from "@/api/handle-api-response"; import type { DashboardStats } from "@/domain/dashboard/types/dashboard-stats"; function toNumber(value: unknown): number { if (typeof value === "number" && Number.isFinite(value)) { return value; } if (typeof value === "string" && value.trim() !== "") { const parsed = Number(value); return Number.isFinite(parsed) ? parsed : 0; } return 0; } function mapDashboardStats(raw: unknown): DashboardStats { const data = (typeof raw === "object" && raw !== null ? raw : {}) as Record; return { open: toNumber(data.open ?? data.Open), notDispatched: toNumber(data.notDispatched ?? data.NotDispatched), completed: toNumber(data.completed ?? data.Completed), }; } export const dashboardApi = { getStats: async (): Promise => { const data = await apiGet(API_PATHS.dashboard.stats); const response = handleApiResponse(data); return mapDashboardStats(response); }, };