79 lines
2.4 KiB
TypeScript
79 lines
2.4 KiB
TypeScript
/**
|
|
* API Client para Valuation Methods
|
|
* Gestiona las operaciones CRUD para los métodos de valoración
|
|
*/
|
|
import { api } from '$lib/api';
|
|
|
|
export interface ValuationMethod {
|
|
key: string;
|
|
description: string;
|
|
}
|
|
|
|
export interface ValuationMethodListResponse {
|
|
items: ValuationMethod[];
|
|
total: number;
|
|
page: number;
|
|
page_size: number;
|
|
}
|
|
|
|
export interface CreateValuationMethodData {
|
|
key: string;
|
|
description: string;
|
|
}
|
|
|
|
export interface UpdateValuationMethodData {
|
|
key?: string;
|
|
description?: string;
|
|
}
|
|
|
|
/**
|
|
* API para Valuation Methods
|
|
*/
|
|
export const valuationMethodsApi = {
|
|
/**
|
|
* Lista todos los métodos de valoración con paginación y búsqueda
|
|
* @param page - Número de página (por defecto 1)
|
|
* @param pageSize - Tamaño de página (por defecto 50)
|
|
* @param search - Término de búsqueda (opcional)
|
|
*/
|
|
list: (page = 1, pageSize = 50, search?: string) => {
|
|
let url = `/v1/public/reference_data/valuation-methods/?page=${page}&page_size=${pageSize}`;
|
|
if (search) {
|
|
url += `&search=${encodeURIComponent(search)}`;
|
|
}
|
|
return api.get<ValuationMethodListResponse>(url);
|
|
},
|
|
|
|
/**
|
|
* Obtiene un método de valoración por key
|
|
* @param key - Clave del método de valoración
|
|
*/
|
|
get: (key: string) =>
|
|
// CORREGIDO: Añadido '/' final
|
|
api.get<ValuationMethod>(`/v1/public/reference_data/valuation-methods/${key}/`),
|
|
|
|
/**
|
|
* Crea un nuevo método de valoración
|
|
* @param data - Datos del método de valoración a crear
|
|
*/
|
|
create: (data: CreateValuationMethodData) =>
|
|
// CORREGIDO: Añadido '/' final
|
|
api.post<ValuationMethod>('/v1/public/reference_data/valuation-methods/', data),
|
|
|
|
/**
|
|
* Actualiza un método de valoración existente
|
|
* @param key - Clave del método de valoración a actualizar
|
|
* @param data - Datos a actualizar
|
|
*/
|
|
update: (key: string, data: UpdateValuationMethodData) =>
|
|
// CORREGIDO: Añadido '/' después de la variable key
|
|
api.put<ValuationMethod>(`/v1/public/reference_data/valuation-methods/${key}/`, data),
|
|
|
|
/**
|
|
* Elimina un método de valoración
|
|
* @param key - Clave del método de valoración a eliminar
|
|
*/
|
|
delete: (key: string) =>
|
|
// CORREGIDO: Añadido '/' después de la variable key
|
|
api.delete(`/v1/public/reference_data/valuation-methods/${key}/`)
|
|
}; |