108 lines
1.9 KiB
TypeScript
108 lines
1.9 KiB
TypeScript
|
import { createSlice } from '@reduxjs/toolkit'
|
||
|
|
||
|
export interface InterrailLeg {
|
||
|
infoJson?: string
|
||
|
info?: InterrailLegInfo
|
||
|
sortOrder: number
|
||
|
}
|
||
|
|
||
|
export interface InterrailTravel {
|
||
|
date: string
|
||
|
infoJson?: string
|
||
|
info?: InterrailTravelInfo
|
||
|
from: string
|
||
|
to: string
|
||
|
type: number
|
||
|
legs: InterrailLeg[]
|
||
|
}
|
||
|
|
||
|
export interface InterrailJourneyData {
|
||
|
travels: InterrailTravel[]
|
||
|
}
|
||
|
|
||
|
export interface InterrailJourney {
|
||
|
data: InterrailJourneyData
|
||
|
}
|
||
|
|
||
|
export interface InterrailTime {
|
||
|
hours: number
|
||
|
minutes: number
|
||
|
offset: number
|
||
|
}
|
||
|
|
||
|
export interface InterrailDate {
|
||
|
day: number
|
||
|
month: number
|
||
|
year: number
|
||
|
}
|
||
|
|
||
|
export interface InterrailTravelInfo {
|
||
|
arrivalTime: InterrailTime
|
||
|
date: InterrailDate
|
||
|
departureTime: InterrailTime
|
||
|
haconVersion: number
|
||
|
dataSource: number
|
||
|
}
|
||
|
|
||
|
export interface InterrailStopExtraInfo {
|
||
|
departureTime: InterrailTime
|
||
|
index: number
|
||
|
}
|
||
|
|
||
|
export interface InterrailStopCoordinates {
|
||
|
latitude: number
|
||
|
longitude: number
|
||
|
}
|
||
|
|
||
|
export interface InterrailStopStation {
|
||
|
coordinates: InterrailStopCoordinates
|
||
|
country: string
|
||
|
name: string
|
||
|
stationId: number
|
||
|
}
|
||
|
|
||
|
export interface InterrailLegInfo {
|
||
|
attributeCodes: string[]
|
||
|
attributes: object
|
||
|
duration: InterrailTime
|
||
|
directionStation: string
|
||
|
endTime: InterrailTime
|
||
|
isSeparateTicket: boolean
|
||
|
operationDays: string
|
||
|
operator: object
|
||
|
dataSource: number
|
||
|
startTime: InterrailTime
|
||
|
stopExtraInfo: InterrailStopExtraInfo[]
|
||
|
trainName: string
|
||
|
trainStopStations: InterrailStopStation[]
|
||
|
trainType: number
|
||
|
}
|
||
|
|
||
|
export interface TrainTrip {
|
||
|
id: string
|
||
|
distance: number,
|
||
|
from: string,
|
||
|
to: string,
|
||
|
departureTime: Date,
|
||
|
arrivalTime: Date,
|
||
|
}
|
||
|
|
||
|
export interface TrainsState {
|
||
|
trains: TrainTrip[]
|
||
|
}
|
||
|
|
||
|
const initialState: TrainsState = {
|
||
|
trains: []
|
||
|
}
|
||
|
|
||
|
export const trainSlice = createSlice({
|
||
|
name: 'train',
|
||
|
initialState: initialState,
|
||
|
reducers: {
|
||
|
},
|
||
|
})
|
||
|
|
||
|
export const { } = trainSlice.actions
|
||
|
|
||
|
export default trainSlice.reducer
|