import { apiRequestBlob, type ApiBlobResponse } from "./http"; export async function exportReimbursements(params: { format: "csv" | "xlsx"; status?: string; scope?: "own" | "all"; }) { const qs = new URLSearchParams(); qs.set("format", params.format); if (params.status) qs.set("status", params.status); if (params.scope) qs.set("scope", params.scope); return apiRequestBlob(`/api/exports/reimbursements?${qs.toString()}`); } export async function exportInvoicePool(params: { format: "csv" | "xlsx"; status?: string; ownerScope?: "own" | "all"; }) { const qs = new URLSearchParams(); qs.set("format", params.format); if (params.status) qs.set("status", params.status); if (params.ownerScope) qs.set("ownerScope", params.ownerScope); return apiRequestBlob(`/api/exports/invoice-pool?${qs.toString()}`); } export async function exportAuditLogs(params: { format: "csv" | "xlsx"; action?: string; targetType?: string; actorId?: string; }) { const qs = new URLSearchParams(); qs.set("format", params.format); if (params.action) qs.set("action", params.action); if (params.targetType) qs.set("targetType", params.targetType); if (params.actorId) qs.set("actorId", params.actorId); return apiRequestBlob(`/api/exports/audit-logs?${qs.toString()}`); } export async function exportDashboardReimbursements(params: { format: "csv" | "xlsx"; dateFrom?: string; dateTo?: string; departmentId?: string; }) { const qs = new URLSearchParams(); qs.set("format", params.format); if (params.dateFrom) qs.set("dateFrom", params.dateFrom); if (params.dateTo) qs.set("dateTo", params.dateTo); if (params.departmentId) qs.set("departmentId", params.departmentId); return apiRequestBlob(`/api/exports/dashboard/reimbursements?${qs.toString()}`); } export async function exportEmployees(params: { format: "csv" | "xlsx"; status?: "active" | "archived"; departmentId?: string; q?: string; title?: string; managerId?: string; hireDateFrom?: string; hireDateTo?: string; employmentStatus?: "onboarding" | "probation" | "active" | "offboarding" | "inactive"; limit?: number; }) { const qs = new URLSearchParams(); qs.set("format", params.format); if (params.status) qs.set("status", params.status); if (params.departmentId) qs.set("departmentId", params.departmentId); if (params.q) qs.set("q", params.q); if (params.title) qs.set("title", params.title); if (params.managerId) qs.set("managerId", params.managerId); if (params.hireDateFrom) qs.set("hireDateFrom", params.hireDateFrom); if (params.hireDateTo) qs.set("hireDateTo", params.hireDateTo); if (params.employmentStatus) qs.set("employmentStatus", params.employmentStatus); if (typeof params.limit === "number") qs.set("limit", String(params.limit)); return apiRequestBlob(`/api/exports/employees?${qs.toString()}`); } export async function exportPayslips(params: { format: "csv" | "xlsx"; month: string; }) { const qs = new URLSearchParams(); qs.set("format", params.format); qs.set("month", params.month); return apiRequestBlob(`/api/exports/payslips?${qs.toString()}`); } export type { ApiBlobResponse };