import { api } from '@/services/api/axios-instance'; import type { Tarifa, CalculoTarifaRequest, CalculoTarifaResponse, } from '../types'; const BASE_URL = '/api/v1/tarifas'; export const tarifasApi = { // Get all tarifas getAll: async (filters?: { clienteId?: string; activo?: boolean }): Promise<{ data: Tarifa[]; total: number }> => { const params = new URLSearchParams(); if (filters?.clienteId) params.append('clienteId', filters.clienteId); if (filters?.activo !== undefined) params.append('activo', String(filters.activo)); const response = await api.get<{ data: Tarifa[]; total: number }>(`${BASE_URL}?${params.toString()}`); return response.data; }, // Get tarifa by ID getById: async (id: string): Promise<{ data: Tarifa }> => { const response = await api.get<{ data: Tarifa }>(`${BASE_URL}/${id}`); return response.data; }, // Calculate tarifa for a route calcular: async (request: CalculoTarifaRequest): Promise => { const response = await api.post(`${BASE_URL}/calcular`, request); return response.data; }, // Search tarifas by route buscarPorRuta: async ( origenCiudad: string, origenEstado: string, destinoCiudad: string, destinoEstado: string, clienteId?: string ): Promise<{ data: Tarifa[] }> => { const params = new URLSearchParams(); params.append('origenCiudad', origenCiudad); params.append('origenEstado', origenEstado); params.append('destinoCiudad', destinoCiudad); params.append('destinoEstado', destinoEstado); if (clienteId) params.append('clienteId', clienteId); const response = await api.get<{ data: Tarifa[] }>(`${BASE_URL}/buscar-ruta?${params.toString()}`); return response.data; }, };