diff --git a/src/worker/director.rs b/src/worker/director.rs index 955a261..f10706a 100644 --- a/src/worker/director.rs +++ b/src/worker/director.rs @@ -1152,6 +1152,56 @@ impl DirectorWorker { source_region: i32, target_region: i32, ) -> Result, DbError> { + // Debug: Prüfe zuerst, ob Fahrzeuge in der Quellregion existieren + const QUERY_COUNT_VEHICLES_IN_REGION: &str = r#" + SELECT COUNT(*) AS count + FROM falukant_data.vehicle v + WHERE v.falukant_user_id = $1 + AND v.region_id = $2; + "#; + + conn.prepare("count_vehicles_in_region", QUERY_COUNT_VEHICLES_IN_REGION)?; + let vehicle_count_rows = conn.execute( + "count_vehicles_in_region", + &[&falukant_user_id, &source_region], + )?; + + let vehicle_count = vehicle_count_rows + .into_iter() + .next() + .and_then(|row| row.get("count").and_then(|v| v.parse::().ok())) + .unwrap_or(0); + + eprintln!( + "[DirectorWorker] Fahrzeuge in Region {} für User {}: {}", + source_region, falukant_user_id, vehicle_count + ); + + // Debug: Prüfe, ob eine Route existiert + const QUERY_CHECK_ROUTE: &str = r#" + SELECT COUNT(*) AS count + FROM falukant_data.region_distance rd + WHERE (rd.source_region_id = $1 AND rd.target_region_id = $2) + OR (rd.source_region_id = $2 AND rd.target_region_id = $1); + "#; + + conn.prepare("check_route", QUERY_CHECK_ROUTE)?; + let route_rows = conn.execute( + "check_route", + &[&source_region, &target_region], + )?; + + let route_exists = route_rows + .into_iter() + .next() + .and_then(|row| row.get("count").and_then(|v| v.parse::().ok())) + .unwrap_or(0) > 0; + + eprintln!( + "[DirectorWorker] Route von Region {} nach Region {} existiert: {}", + source_region, target_region, route_exists + ); + conn.prepare( "get_transport_vehicles_for_route", QUERY_GET_TRANSPORT_VEHICLES_FOR_ROUTE, @@ -1177,6 +1227,11 @@ impl DirectorWorker { } } + eprintln!( + "[DirectorWorker] Gefundene Transportmittel für Route {} -> {}: {}", + source_region, target_region, result.len() + ); + Ok(result) }