- 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>
52 lines
1.8 KiB
TypeScript
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;
|
|
},
|
|
};
|