prepare("SELECT id FROM transit_routes WHERE id=? AND org_id=? LIMIT 1"); $chk->execute([$routeId, $transit_org_id]); if (!$chk->fetch()) jsonError('Route not found or access denied', 404); if ($vehicleId) { $chkV = $transit_con->prepare("SELECT id FROM transit_vehicles WHERE id=? AND org_id=? LIMIT 1"); $chkV->execute([$vehicleId, $transit_org_id]); if (!$chkV->fetch()) jsonError('Vehicle not found or access denied', 404); } if ($driverId) { $chkD = $transit_con->prepare("SELECT id FROM transit_drivers WHERE id=? AND org_id=? AND status='active' LIMIT 1"); $chkD->execute([$driverId, $transit_org_id]); if (!$chkD->fetch()) jsonError('Driver not found or not active', 404); } $transit_con->prepare( "INSERT INTO transit_schedules (route_id, org_id, vehicle_id, driver_id, days_mask, departure_time, valid_from, valid_until) VALUES (?,?,?,?,?,?,?,?)" )->execute([$routeId, $transit_org_id, $vehicleId, $driverId, $daysMask, $departureTime, $validFrom, $validUntil]); jsonSuccess(['schedule_id' => (int)$transit_con->lastInsertId()], 'Schedule added');