diff --git a/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/routes.sq b/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/routes.sq index 1bc8696a..2e814738 100644 --- a/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/routes.sq +++ b/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/routes.sq @@ -30,3 +30,7 @@ SELECT * FROM routes; routesCount: SELECT COUNT(*) FROM routes; + +selectRouteById: +SELECT * FROM routes +WHERE route_id = ?; diff --git a/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/routing/findRoute.sq b/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/routing/findRoute.sq new file mode 100644 index 00000000..bab572e7 --- /dev/null +++ b/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/routing/findRoute.sq @@ -0,0 +1,15 @@ +WITH trips_serving_stops AS ( + SELECT st1.trip_id, st1.stop_id AS start_stop_id, st2.stop_id AS end_stop_id + FROM stopTimes AS st1 + JOIN stopTimes AS st2 ON st1.trip_id = st2.trip_id + WHERE st1.stop_id = :start_stop_id + AND st2.stop_id = :end_stop_id + AND st1.stop_sequence < st2.stop_sequence +), +route_details AS ( + SELECT t.trip_id, r.route_id, r.route_short_name, r.route_long_name + FROM trips_serving_stops AS tss + JOIN trip AS t ON tss.trip_id = t.trip_id + JOIN routes AS r ON t.route_id = r.route_id +) +SELECT * FROM route_details; diff --git a/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/stops.sq b/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/stops.sq index 62fbc68c..938f31da 100644 --- a/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/stops.sq +++ b/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/stops.sq @@ -35,3 +35,12 @@ SELECT * FROM stop; stopsCount: SELECT COUNT(*) FROM stop; + +selectStopIdByName: +SELECT stop_id +FROM stop +WHERE stop_name = ?; + +selectStopById: +SELECT * FROM stop +WHERE stop_id = ?; diff --git a/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/stoptimes.sq b/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/stoptimes.sq index 574b1fd9..51abc97b 100644 --- a/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/stoptimes.sq +++ b/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/stoptimes.sq @@ -28,3 +28,11 @@ SELECT * FROM stopTimes; sizeOfStopTimes: SELECT COUNT(*) FROM stopTimes; + +selectTripBetweenStops: +SELECT st1.trip_id, st1.stop_id AS start_stop_id, st2.stop_id AS end_stop_id +FROM stopTimes AS st1 +JOIN stopTimes AS st2 ON st1.trip_id = st2.trip_id +WHERE st1.stop_id = ? + AND st2.stop_id = ? + AND st1.stop_sequence < st2.stop_sequence; diff --git a/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/trips.sq b/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/trips.sq index febde275..a201c7b3 100644 --- a/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/trips.sq +++ b/feature/sydney-trains/database/api/src/main/sqldelight/xyz/ksharma/krail/sydney/trains/database/trips.sq @@ -30,3 +30,11 @@ SELECT * FROM trip; tripsCount: SELECT COUNT(*) FROM trip; + +selectTripById: +SELECT * FROM trip +WHERE trip_id = ?; + +selectTripsByRoute: +SELECT * FROM trip +WHERE route_id = ?;