mirror of
https://github.com/2martens/tsw-timetable.git
synced 2026-10-17 16:06:51 +02:00
Added DTOs for communication with Angular
This commit is contained in:
@@ -0,0 +1,14 @@
|
|||||||
|
package de.twomartens.timetable.model.common
|
||||||
|
|
||||||
|
import de.twomartens.timetable.types.NonEmptyString
|
||||||
|
|
||||||
|
@JvmInline
|
||||||
|
value class Line private constructor(val name: String) {
|
||||||
|
companion object {
|
||||||
|
val EMPTY = Line("EMPTY")
|
||||||
|
|
||||||
|
fun of(name: NonEmptyString): Line {
|
||||||
|
return Line(name.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package de.twomartens.timetable.model.common
|
||||||
|
|
||||||
|
import de.twomartens.timetable.types.PositiveInteger
|
||||||
|
|
||||||
|
@JvmInline
|
||||||
|
value class RotationId private constructor(val id: Int) {
|
||||||
|
companion object {
|
||||||
|
fun of(id: PositiveInteger): RotationId {
|
||||||
|
return RotationId(id.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package de.twomartens.timetable.model.dto
|
||||||
|
|
||||||
|
import de.twomartens.timetable.model.common.FormationId
|
||||||
|
import de.twomartens.timetable.model.common.Line
|
||||||
|
import de.twomartens.timetable.model.common.ServiceId
|
||||||
|
import java.time.LocalTime
|
||||||
|
|
||||||
|
data class AdditionalService(
|
||||||
|
val id: ServiceId,
|
||||||
|
val line: Line,
|
||||||
|
val formationId: FormationId,
|
||||||
|
val direction: Direction,
|
||||||
|
val start: Station,
|
||||||
|
val destination: Station,
|
||||||
|
val serviceStartTime: LocalTime,
|
||||||
|
val stops: List<AdditionalServiceStop>
|
||||||
|
)
|
||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
package de.twomartens.timetable.model.dto
|
||||||
|
|
||||||
|
import de.twomartens.timetable.types.NonEmptyString
|
||||||
|
import java.time.LocalTime
|
||||||
|
|
||||||
|
data class AdditionalServiceStop(
|
||||||
|
val stop: Station,
|
||||||
|
val arrivalTime: LocalTime,
|
||||||
|
val departureTime: LocalTime,
|
||||||
|
val platformAndSection: NonEmptyString,
|
||||||
|
val loading: Boolean
|
||||||
|
)
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package de.twomartens.timetable.model.dto
|
||||||
|
|
||||||
|
import de.twomartens.timetable.model.common.CountryCode
|
||||||
|
import de.twomartens.timetable.types.NonEmptyString
|
||||||
|
|
||||||
|
data class Country(
|
||||||
|
val countryCode: CountryCode,
|
||||||
|
val name: NonEmptyString
|
||||||
|
)
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package de.twomartens.timetable.model.dto
|
||||||
|
|
||||||
|
enum class Direction {
|
||||||
|
LEFT,
|
||||||
|
RIGHT
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package de.twomartens.timetable.model.dto
|
||||||
|
|
||||||
|
import de.twomartens.timetable.model.common.FormationId
|
||||||
|
import de.twomartens.timetable.types.NonEmptyString
|
||||||
|
|
||||||
|
data class Formation(
|
||||||
|
val id: FormationId,
|
||||||
|
val name: NonEmptyString,
|
||||||
|
val trainSimWorldFormationId: FormationId?,
|
||||||
|
val coaches: List<NonEmptyString>
|
||||||
|
)
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package de.twomartens.timetable.model.dto
|
||||||
|
|
||||||
|
import de.twomartens.timetable.model.common.FormationId
|
||||||
|
import de.twomartens.timetable.model.common.RotationId
|
||||||
|
import java.time.LocalTime
|
||||||
|
|
||||||
|
data class Rotation(
|
||||||
|
val id: RotationId,
|
||||||
|
val formationId: FormationId,
|
||||||
|
val firstServiceStartTime: LocalTime,
|
||||||
|
val lastServiceEndTime: LocalTime,
|
||||||
|
val startsInVault: Boolean,
|
||||||
|
|
||||||
|
)
|
||||||
+15
@@ -0,0 +1,15 @@
|
|||||||
|
package de.twomartens.timetable.model.dto
|
||||||
|
|
||||||
|
import de.twomartens.timetable.model.common.FormationId
|
||||||
|
import de.twomartens.timetable.model.common.Line
|
||||||
|
import de.twomartens.timetable.model.common.ServiceId
|
||||||
|
|
||||||
|
data class ServiceFormationStage(
|
||||||
|
val id: ServiceId,
|
||||||
|
val line: Line,
|
||||||
|
val direction: Direction,
|
||||||
|
val formation: FormationId,
|
||||||
|
val formationReversed: Boolean,
|
||||||
|
val startStop: ServiceStop,
|
||||||
|
val destinationStop: ServiceStop
|
||||||
|
)
|
||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
package de.twomartens.timetable.model.dto
|
||||||
|
|
||||||
|
import de.twomartens.timetable.model.common.FormationId
|
||||||
|
import de.twomartens.timetable.model.common.Line
|
||||||
|
import de.twomartens.timetable.model.common.ServiceId
|
||||||
|
|
||||||
|
data class ServiceLinkingStage(
|
||||||
|
val id: ServiceId,
|
||||||
|
val formationId: FormationId,
|
||||||
|
val line: Line,
|
||||||
|
val direction: Direction,
|
||||||
|
val formationReversed: Boolean,
|
||||||
|
val startStop: ServiceStop,
|
||||||
|
val fromDepotOrSidingAtStart: Boolean,
|
||||||
|
val destinationStop: ServiceStop,
|
||||||
|
val fromDepotOrSidingAtDestination: Boolean,
|
||||||
|
)
|
||||||
|
|
||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
package de.twomartens.timetable.model.dto
|
||||||
|
|
||||||
|
import de.twomartens.timetable.model.common.Line
|
||||||
|
import de.twomartens.timetable.model.common.ServiceId
|
||||||
|
import de.twomartens.timetable.types.NonEmptyString
|
||||||
|
|
||||||
|
data class ServiceRotationStage(
|
||||||
|
val id: ServiceId,
|
||||||
|
val line: Line,
|
||||||
|
val originStop: NonEmptyString,
|
||||||
|
val virtualDestinations: List<NonEmptyString>,
|
||||||
|
val startingFrom: NonEmptyString,
|
||||||
|
val endingIn: NonEmptyString,
|
||||||
|
val serviceStartTime: NonEmptyString,
|
||||||
|
val stops: List<ServiceStop>
|
||||||
|
)
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package de.twomartens.timetable.model.dto
|
||||||
|
|
||||||
|
import de.twomartens.timetable.types.NonEmptyString
|
||||||
|
|
||||||
|
data class ServiceStop(
|
||||||
|
val stop: Station,
|
||||||
|
val arrivalTime: String,
|
||||||
|
val departureTime: String,
|
||||||
|
val platform: NonEmptyString,
|
||||||
|
val section: String
|
||||||
|
)
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package de.twomartens.timetable.model.dto
|
||||||
|
|
||||||
|
import de.twomartens.timetable.model.common.StationId
|
||||||
|
import de.twomartens.timetable.types.NonEmptyString
|
||||||
|
|
||||||
|
data class Station(
|
||||||
|
val id: StationId,
|
||||||
|
val name: NonEmptyString
|
||||||
|
)
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package de.twomartens.timetable.model.dto
|
||||||
|
|
||||||
|
import de.twomartens.timetable.types.NonEmptyString
|
||||||
|
import java.time.LocalDate
|
||||||
|
|
||||||
|
data class Timetable(
|
||||||
|
val name: NonEmptyString,
|
||||||
|
val country: Country,
|
||||||
|
val routeName: NonEmptyString,
|
||||||
|
val fetchDate: LocalDate,
|
||||||
|
val state: TimetableState,
|
||||||
|
val numberOfServices: String
|
||||||
|
)
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package de.twomartens.timetable.model.dto
|
||||||
|
|
||||||
|
enum class TimetableState {
|
||||||
|
NEW,
|
||||||
|
PROCESSING,
|
||||||
|
ENTER_FORMATIONS,
|
||||||
|
LINK_SERVICES,
|
||||||
|
READY_FOR_USAGE
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package de.twomartens.timetable.model.dto
|
||||||
|
|
||||||
|
import de.twomartens.timetable.model.common.Depot
|
||||||
|
import de.twomartens.timetable.model.common.Portal
|
||||||
|
import de.twomartens.timetable.types.NonEmptyString
|
||||||
|
|
||||||
|
data class TswRoute(
|
||||||
|
val name: NonEmptyString,
|
||||||
|
val country: Country,
|
||||||
|
val stations: List<Station>,
|
||||||
|
val portals: List<Portal>,
|
||||||
|
val depots: List<Depot>
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user