import type { RequestHandler } from './$types'; import { json } from '@sveltejs/kit'; import { getAuthTokens, getActiveCompanyId, authenticatedFetch } from '$lib/server/api'; export const GET: RequestHandler = async ({ cookies, fetch }) => { const { accessToken } = getAuthTokens(cookies); if (!accessToken) { return json({ error: 'Not authenticated' }, { status: 401 }); } const companyId = await getActiveCompanyId(cookies, fetch); if (!companyId) { return json({ error: 'No company selected' }, { status: 400 }); } try { // Cargar todos los datos de referencia en paralelo const [ invoiceTypesResponse, customsBrokersResponse, clientsResponse, providersResponse, currencyTypesResponse, transportTypesResponse, sealsResponse, incotermsResponse, pedimentosResponse ] = await Promise.all([ authenticatedFetch('v1/public/refrence_data/invoice-types/?page=1&page_size=100', {}, cookies, fetch), authenticatedFetch(`v1/a76/customs-brokers/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch), authenticatedFetch(`v1/a76/clients-providers/?company_id=${companyId}&type=client&page=1&page_size=1000`, {}, cookies, fetch), authenticatedFetch(`v1/a76/clients-providers/?company_id=${companyId}&type=provider&page=1&page_size=1000`, {}, cookies, fetch), authenticatedFetch('v1/public/refrence_data/currency-types/?page=1&page_size=100', {}, cookies, fetch), authenticatedFetch('v1/public/refrence_data/transport-types/?page=1&page_size=100', {}, cookies, fetch), authenticatedFetch(`v1/a76/seals/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch), authenticatedFetch('v1/public/refrence_data/incoterms/?page=1&page_size=100', {}, cookies, fetch), authenticatedFetch(`v1/a76/pedimentos/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch) ]); const invoiceTypes = invoiceTypesResponse.ok ? await invoiceTypesResponse.json() : { items: [] }; const customsBrokers = customsBrokersResponse.ok ? await customsBrokersResponse.json() : { items: [] }; const clients = clientsResponse.ok ? await clientsResponse.json() : { items: [] }; const providers = providersResponse.ok ? await providersResponse.json() : { items: [] }; const currencyTypes = currencyTypesResponse.ok ? await currencyTypesResponse.json() : { items: [] }; const transportTypes = transportTypesResponse.ok ? await transportTypesResponse.json() : { items: [] }; const seals = sealsResponse.ok ? await sealsResponse.json() : { items: [] }; const incoterms = incotermsResponse.ok ? await incotermsResponse.json() : { items: [] }; const pedimentos = pedimentosResponse.ok ? await pedimentosResponse.json() : { items: [] }; return json({ invoiceTypes: invoiceTypes.items || [], customsBrokers: customsBrokers.items || [], clients: clients.items || [], providers: providers.items || [], currencyTypes: currencyTypes.items || [], transportTypes: transportTypes.items || [], seals: seals.items || [], incoterms: incoterms.items || [], pedimentos: pedimentos.items || [] }); } catch (err) { console.error('Error loading reference data:', err); return json({ error: 'Error loading reference data' }, { status: 500 }); } };