feature/table-celery-tasks-resume

This commit is contained in:
2026-03-24 16:17:13 -06:00
parent 481b295ab0
commit 65eec3c4d3
9 changed files with 1418 additions and 132 deletions

View File

@@ -0,0 +1,49 @@
import { api, type ApiResponse } from '$lib/api';
import type { CsvImportProfile } from '$lib/csv-import-session';
/**
* Consulta el estado de un job CSV según el perfil de importación (misma lógica que pollStatus en csv-upload).
*/
export function fetchCsvImportStatus(
jobId: string,
profile: CsvImportProfile
): Promise<ApiResponse> {
switch (profile) {
case 'customs_brokers':
return api.customsBrokerImports.status(jobId);
case 'clients_providers':
return api.clientProviderImports.status(jobId);
case 'exchange_rates':
return api.exchangeRateImports.status(jobId);
case 'american_fractions':
return api.americanFractionImports.status(jobId);
case 'pedimentos':
return api.pedimentosImports.status(jobId);
case 'material_classes':
return api.materialClassImports.status(jobId);
case 'vehicles':
return api.vehicleImports.status(jobId);
case 'drivers':
return api.driverImports.status(jobId);
case 'trailers':
return api.trailerImports.status(jobId);
case 'transporters':
return api.transporterImports.status(jobId);
case 'part_numbers':
return api.partNumberImports.status(jobId);
case 'boms':
return api.bomImports.status(jobId);
case 'exportacion':
return api.exportacionImports.status(jobId);
case 'imports':
default:
return api.imports.status(jobId);
}
}
export function isWaitingConfirmationPayload(data: unknown): boolean {
if (!data || typeof data !== 'object') return false;
const d = data as Record<string, unknown>;
if (d.status === 'waiting_confirmation') return true;
return typeof d.job_id === 'string' && typeof d.total_rows === 'number';
}