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:
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* API Client para Customs Sections
|
||||
* Gestiona las operaciones CRUD para las secciones aduaneras
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface CustomsSection {
|
||||
customs_code: string;
|
||||
section_name: string;
|
||||
}
|
||||
|
||||
export interface CustomsSectionListResponse {
|
||||
items: CustomsSection[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreateCustomsSectionData {
|
||||
customs_code: string;
|
||||
section_name: string;
|
||||
}
|
||||
|
||||
export interface UpdateCustomsSectionData {
|
||||
customs_code?: string;
|
||||
section_name?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Customs Sections
|
||||
*/
|
||||
export const customsSectionsApi = {
|
||||
/**
|
||||
* Lista todas las secciones aduaneras 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<CustomsSectionListResponse>(
|
||||
`/v1/customs-sections?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene una sección aduanera por código
|
||||
* @param customs_code - Código de la sección aduanera
|
||||
*/
|
||||
get: (customs_code: string) => api.get<CustomsSection>(`/v1/customs-sections/${customs_code}`),
|
||||
|
||||
/**
|
||||
* Crea una nueva sección aduanera
|
||||
* @param data - Datos de la sección aduanera a crear
|
||||
*/
|
||||
create: (data: CreateCustomsSectionData) =>
|
||||
api.post<CustomsSection>('/v1/customs-sections', data),
|
||||
|
||||
/**
|
||||
* Actualiza una sección aduanera existente
|
||||
* @param customs_code - Código de la sección aduanera a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (customs_code: string, data: UpdateCustomsSectionData) =>
|
||||
api.put<CustomsSection>(`/v1/customs-sections/${customs_code}`, data),
|
||||
|
||||
/**
|
||||
* Elimina una sección aduanera
|
||||
* @param customs_code - Código de la sección aduanera a eliminar
|
||||
*/
|
||||
delete: (customs_code: string) => api.delete(`/v1/customs-sections/${customs_code}`)
|
||||
};
|
||||
Reference in New Issue
Block a user