feat: Implement reference data management for states, transport modes, transport types, and valuation methods

- Added server-side loading logic for states, transport modes, transport types, and valuation methods with pagination support.
- Created Svelte components for displaying and managing states, transport modes, transport types, and valuation methods.
- Implemented infinite scroll functionality for loading more data as the user scrolls.
- Added error handling and user feedback for API interactions.
- Included dialogs for creating and editing entries in each reference data category.
This commit is contained in:
2025-11-02 16:54:27 -06:00
parent 27b5880524
commit ab57c6cd79
141 changed files with 13989 additions and 2 deletions

View File

@@ -0,0 +1,69 @@
/**
* API Client para Pedimento Codes
* Gestiona las operaciones CRUD para las claves de pedimento
*/
import { api } from '$lib/api';
export interface PedimentoCode {
code: string;
description: string;
}
export interface PedimentoCodeListResponse {
items: PedimentoCode[];
total: number;
page: number;
page_size: number;
}
export interface CreatePedimentoCodeData {
code: string;
description: string;
}
export interface UpdatePedimentoCodeData {
code?: string;
description?: string;
}
/**
* API para Pedimento Codes
*/
export const pedimentoCodesApi = {
/**
* Lista todas las claves de pedimento con paginación
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
*/
list: (page = 1, pageSize = 50) =>
api.get<PedimentoCodeListResponse>(
`/v1/pedimento-codes?page=${page}&page_size=${pageSize}`
),
/**
* Obtiene una clave de pedimento por code
* @param code - Código de la clave de pedimento
*/
get: (code: string) => api.get<PedimentoCode>(`/v1/pedimento-codes/${code}`),
/**
* Crea una nueva clave de pedimento
* @param data - Datos de la clave de pedimento a crear
*/
create: (data: CreatePedimentoCodeData) =>
api.post<PedimentoCode>('/v1/pedimento-codes', data),
/**
* Actualiza una clave de pedimento existente
* @param code - Código de la clave de pedimento a actualizar
* @param data - Datos a actualizar
*/
update: (code: string, data: UpdatePedimentoCodeData) =>
api.put<PedimentoCode>(`/v1/pedimento-codes/${code}`, data),
/**
* Elimina una clave de pedimento
* @param code - Código de la clave de pedimento a eliminar
*/
delete: (code: string) => api.delete(`/v1/pedimento-codes/${code}`)
};