Files
plantillas-proyectos/frontend/src/lib/api/dashboard/reference_data/valuation_methods.ts

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}/`)
};