erp-transportistas-frontend-v2/src/features/tarifas/api/tarifas.api.ts
Adrian Flores Cortes f14e6112cb [SPRINT-2] feat: Implement Transport Orders UI MVP
- Add AsignarUnidadModal for unit/operator assignment
- Update OTList, OTDetail, OTForm components
- Create clientes feature module with service and hooks
- Create tarifas feature module with lane rate calculator
- Update OrdenesTransportePage with filters and map integration

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 07:05:21 -06:00

52 lines
1.8 KiB
TypeScript

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<CalculoTarifaResponse> => {
const response = await api.post<CalculoTarifaResponse>(`${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;
},
};