/** Service for route-related API calls */ import { apiClient } from './apiClient' import type { Route, BusStop } from '@/types' export const routesService = { /** Get all routes with optional filtering */ async getAllRoutes(filters?: { originCity?: string, destinationCity?: string }): Promise { const response = await apiClient.get('/api/routes', { params: { origin_city: filters?.originCity, destination_city: filters?.destinationCity } }) return response.data }, /** Get a single route by ID */ async getRouteById(id: string): Promise { const response = await apiClient.get(`/api/routes/${id}`) return response.data }, /** Get all stops for a route */ async getRouteStops(routeId: string): Promise { const response = await apiClient.get(`/api/routes/${routeId}/stops`) return response.data }, /** Create a new route (Admin) */ async createRoute(data: import('@/types').RouteCreate): Promise { const response = await apiClient.post('/api/routes', data) return response.data }, /** Update a route (Admin) */ async updateRoute(id: string, data: import('@/types').RouteUpdate): Promise { const response = await apiClient.put(`/api/routes/${id}`, data) return response.data }, /** Delete a route (Admin) */ async deleteRoute(id: string): Promise { await apiClient.delete(`/api/routes/${id}`) }, /** Add a stop to a route (Admin) */ async addStopToRoute(routeId: string, data: import('@/types').RouteStopCreate): Promise { await apiClient.post(`/api/routes/${routeId}/stops`, data) }, /** Update a stop on a route (Admin) - including reorder */ async updateRouteStop(routeId: string, stopId: string, data: import('@/types').RouteStopUpdate): Promise { await apiClient.put(`/api/routes/${routeId}/stops/${stopId}`, data) } }