import { fetchWithAuth } from '../fetchWithAuth'; import { extractApiError } from './apiError'; const API_BASE_URL = import.meta.env.VITE_EFC_API_URL; export const fetchPedimentoEdocuments = async (pedimentoId, page = 1, pageSize = 10, filters = {}) => { const params = new URLSearchParams({ pedimento: pedimentoId, page: page.toString(), page_size: pageSize.toString(), }); if (filters.numero_edocument) params.append('numero_edocument__icontains', filters.numero_edocument); if (filters.clave) params.append('clave__icontains', filters.clave); if (filters.descripcion) params.append('descripcion__icontains', filters.descripcion); // Estado de 3 valores (pendiente | descargado | error) — T2026-05-027 if (filters.edocument_estado) params.append('edocument_estado', filters.edocument_estado); if (filters.acuse_estado) params.append('acuse_estado', filters.acuse_estado); // Filtros booleanos legados (compatibilidad) if (filters.edocument_descargado !== undefined && filters.edocument_descargado !== '') params.append('edocument_descargado', filters.edocument_descargado); if (filters.acuse_descargado !== undefined && filters.acuse_descargado !== '') params.append('acuse_descargado', filters.acuse_descargado); if (filters.date_from || filters.created_at__gte) params.append('created_at__gte', filters.date_from || filters.created_at__gte); if (filters.date_to || filters.created_at__lte) params.append('created_at__lte', filters.date_to || filters.created_at__lte); const response = await fetchWithAuth(`${API_BASE_URL}/customs/edocuments/?${params}`); if (!response.ok) throw new Error(await extractApiError(response)); const data = await response.json(); return { results: data.results, count: data.count, next: data.next, previous: data.previous }; }; export const downloadEdocument = async (edocId) => { const response = await fetchWithAuth(`${API_BASE_URL}/customs/edocuments/${edocId}/download/`); if (!response.ok) throw new Error(await extractApiError(response)); const blob = await response.blob(); const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.style.display = 'none'; a.href = url; a.download = `EDOC_${edocId}.pdf`; document.body.appendChild(a); a.click(); window.URL.revokeObjectURL(url); document.body.removeChild(a); }; export const downloadAcuseEdocument = async (edocId) => { const response = await fetchWithAuth(`${API_BASE_URL}/customs/edocuments/${edocId}/download-acuse/`); if (!response.ok) throw new Error(await extractApiError(response)); const blob = await response.blob(); const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.style.display = 'none'; a.href = url; a.download = `ACUSE_EDOC_${edocId}.pdf`; document.body.appendChild(a); a.click(); window.URL.revokeObjectURL(url); document.body.removeChild(a); }; export const resetAcuseEdocument = async (edocId) => { const response = await fetchWithAuth( `${API_BASE_URL}/customs/edocuments/${edocId}/reset-acuse/`, { method: 'POST' } ); if (!response.ok) throw new Error(await extractApiError(response)); return response.json(); };