prepare("SELECT * FROM transit_routes WHERE id=? AND org_id=? LIMIT 1"); $st->execute([$routeId, $transit_org_id]); $route = $st->fetch(); if (!$route) jsonError('Route not found', 404); $stStops = $transit_con->prepare( "SELECT id,sequence,name_ar,name_en,latitude,longitude,geofence_radius,eta_offset_min,is_major FROM transit_stops WHERE route_id=? ORDER BY sequence ASC" ); $stStops->execute([$routeId]); $route['stops'] = $stStops->fetchAll(); $stSch = $transit_con->prepare( "SELECT s.id, s.departure_time, s.days_mask, s.valid_from, s.valid_until, s.is_active, d.name AS driver_name, v.plate AS vehicle_plate FROM transit_schedules s LEFT JOIN transit_drivers d ON d.id=s.driver_id LEFT JOIN transit_vehicles v ON v.id=s.vehicle_id WHERE s.route_id=? AND s.org_id=? ORDER BY s.departure_time ASC" ); $stSch->execute([$routeId, $transit_org_id]); $route['schedules'] = $stSch->fetchAll(); jsonSuccess(['route' => $route]);