import { api } from './client' import { Viaje, Parada, EventoViaje, ViajeReplayData, PaginatedResponse, } from '@/types' export const viajesApi = { // List viajes with pagination list: (params?: { page?: number pageSize?: number vehiculoId?: string conductorId?: string estado?: string desde?: string hasta?: string }): Promise> => { return api.get>('/viajes', params) }, // Get single viaje get: (id: string): Promise => { return api.get(`/viajes/${id}`) }, // Get viaje replay data (includes route points, events, recordings) getReplayData: (id: string): Promise => { return api.get(`/viajes/${id}/replay`) }, // Get viaje route getRuta: (id: string): Promise> => { return api.get(`/viajes/${id}/ruta`) }, // Get viaje events getEventos: (id: string): Promise => { return api.get(`/viajes/${id}/eventos`) }, // Get viaje paradas getParadas: (id: string): Promise => { return api.get(`/viajes/${id}/paradas`) }, // Get current/active viajes getActivos: (): Promise => { return api.get('/viajes/activos') }, // Start a new viaje iniciar: (vehiculoId: string, conductorId?: string): Promise => { return api.post('/viajes/iniciar', { vehiculoId, conductorId }) }, // End a viaje finalizar: (id: string): Promise => { return api.post(`/viajes/${id}/finalizar`) }, // Add a parada to viaje addParada: (id: string, parada: Partial): Promise => { return api.post(`/viajes/${id}/paradas`, parada) }, // Get viaje statistics getStats: (params?: { vehiculoId?: string conductorId?: string desde?: string hasta?: string }): Promise<{ totalViajes: number distanciaTotal: number tiempoTotal: number velocidadPromedio: number paradasTotal: number combustibleTotal: number }> => { return api.get('/viajes/stats', params) }, // Export viaje exportar: (id: string, formato: 'pdf' | 'excel'): Promise => { return api.get(`/viajes/${id}/exportar`, { formato }) }, }