feat: basic departures support
also a huge refactor to simplify modules
This commit is contained in:
parent
b31067992d
commit
8b3016004b
44 changed files with 627 additions and 211 deletions
|
|
@ -2,9 +2,10 @@ package moe.lava.banksia.core.sqld.mappers
|
|||
|
||||
import moe.lava.banksia.core.model.StopTime
|
||||
import moe.lava.banksia.core.model.StoppingPattern
|
||||
import moe.lava.banksia.core.model.TimeType
|
||||
import moe.lava.banksia.core.sqld.StoppingPattern as DbStoppingPattern
|
||||
|
||||
fun DbStoppingPattern.asModel(stoptimes: List<StopTime.Undated>) = StoppingPattern.Undated(
|
||||
fun <T: TimeType> DbStoppingPattern.asModel(stoptimes: List<StopTime<T>>) = StoppingPattern(
|
||||
id = id,
|
||||
routeId = routeId,
|
||||
shapeId = shapeId,
|
||||
|
|
@ -13,7 +14,7 @@ fun DbStoppingPattern.asModel(stoptimes: List<StopTime.Undated>) = StoppingPatte
|
|||
stoptimes = stoptimes,
|
||||
)
|
||||
|
||||
fun StoppingPattern.Undated.asDb() = DbStoppingPattern(
|
||||
fun StoppingPattern<*>.asDb() = DbStoppingPattern(
|
||||
id = id,
|
||||
routeId = routeId,
|
||||
shapeId = shapeId,
|
||||
|
|
|
|||
|
|
@ -11,5 +11,10 @@ SELECT * FROM Route;
|
|||
get:
|
||||
SELECT * FROM Route WHERE id == ?;
|
||||
|
||||
getByPattern:
|
||||
SELECT Route.* FROM Route
|
||||
INNER JOIN StoppingPattern ON Route.id == StoppingPattern.routeId
|
||||
WHERE StoppingPattern.id == :patternId;
|
||||
|
||||
insert:
|
||||
INSERT INTO Route VALUES ?;
|
||||
INSERT OR REPLACE INTO Route VALUES ?;
|
||||
|
|
|
|||
|
|
@ -22,3 +22,24 @@ INNER JOIN StoppingPattern ON StoppingPattern.id == Trip.patternId
|
|||
WHERE StopTime.patternId == StoppingPattern.id
|
||||
AND StopTime.stopId IN (SELECT Stop.id FROM Stop WHERE Stop.parent == :stopId OR Stop.id == :stopId)
|
||||
AND ServiceException.type IS NULL;
|
||||
|
||||
getExtendedForStop:
|
||||
SELECT DISTINCT
|
||||
StopTime.patternId,
|
||||
StopTime.arrivalDelta,
|
||||
StopTime.departureTime,
|
||||
StoppingPattern.headsign,
|
||||
Route.type AS routeType,
|
||||
Route.number AS routeNumber,
|
||||
Route.name AS routeName,
|
||||
Stop.platformCode AS stopPlatformCode
|
||||
FROM StopTime
|
||||
INNER JOIN Service ON Service.days & :days = :days AND :date BETWEEN Service.start AND Service.`end`
|
||||
LEFT JOIN ServiceException ON ServiceException.serviceId == Service.id AND ServiceException.date == :date
|
||||
INNER JOIN Trip ON Trip.serviceId == Service.id
|
||||
INNER JOIN StoppingPattern ON StoppingPattern.id == Trip.patternId
|
||||
INNER JOIN Route ON Route.id == StoppingPattern.routeId
|
||||
INNER JOIN Stop ON Stop.id == StopTime.stopId
|
||||
WHERE StopTime.patternId == StoppingPattern.id
|
||||
AND StopTime.stopId IN (SELECT Stop.id FROM Stop WHERE Stop.parent == :stopId OR Stop.id == :stopId)
|
||||
AND ServiceException.type IS NULL;
|
||||
|
|
|
|||
|
|
@ -8,3 +8,6 @@ CREATE TABLE StoppingPattern (
|
|||
|
||||
insert:
|
||||
INSERT OR REPLACE INTO StoppingPattern VALUES ?;
|
||||
|
||||
get:
|
||||
SELECT * FROM StoppingPattern WHERE id == :id;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue