mirror of
https://github.com/Spythere/srjp-td2.git
synced 2026-05-02 21:18:12 +00:00
287 lines
6.2 KiB
TypeScript
287 lines
6.2 KiB
TypeScript
export type ViewMode = 'active' | 'storage' | 'journal';
|
|
|
|
export interface ActiveData {
|
|
trains: ActiveTrain[];
|
|
activeSceneries: ActiveScenery[];
|
|
}
|
|
|
|
export interface ActiveTrain {
|
|
id: string;
|
|
trainNo: number;
|
|
mass: number;
|
|
speed: number;
|
|
length: number;
|
|
distance: number;
|
|
stockString: string;
|
|
driverName: string;
|
|
driverId: number;
|
|
driverIsSupporter: boolean;
|
|
driverLevel: number;
|
|
currentStationHash?: string;
|
|
currentStationName: string;
|
|
signal: string;
|
|
connectedTrack: string;
|
|
online: number;
|
|
lastSeen: number;
|
|
region: string;
|
|
isTimeout: boolean;
|
|
timetable?: ActiveTrainTimetable;
|
|
}
|
|
|
|
export interface ActiveTrainTimetable {
|
|
SKR: boolean;
|
|
TWR: boolean;
|
|
hasDangerousCargo: boolean;
|
|
hasExtraDeliveries: boolean;
|
|
warningNotes: string;
|
|
category: string;
|
|
stopList: TimetableStop[];
|
|
route: string;
|
|
timetableId: number;
|
|
sceneries: string[];
|
|
path: string;
|
|
trainMaxSpeed: number;
|
|
}
|
|
|
|
export interface TimetableStop {
|
|
stopName: string;
|
|
stopNameRAW: string;
|
|
stopType: string;
|
|
stopDistance: number;
|
|
pointId: string;
|
|
comments?: string;
|
|
mainStop: boolean;
|
|
arrivalLine?: string;
|
|
arrivalTimestamp: number;
|
|
arrivalRealTimestamp: number;
|
|
arrivalDelay: number;
|
|
departureLine?: string;
|
|
departureTimestamp: number;
|
|
departureRealTimestamp: number;
|
|
departureDelay: number;
|
|
beginsHere: boolean;
|
|
terminatesHere: boolean;
|
|
confirmed: number;
|
|
stopped: number;
|
|
stopTime?: number;
|
|
}
|
|
|
|
export interface ActiveScenery {
|
|
dispatcherId: number;
|
|
dispatcherName: string;
|
|
dispatcherIsSupporter: boolean;
|
|
stationName: string;
|
|
stationHash: string;
|
|
region: string;
|
|
maxUsers: number;
|
|
currentUsers: number;
|
|
spawn: number;
|
|
lastSeen: number;
|
|
dispatcherExp: number;
|
|
nameFromHeader: string;
|
|
spawnString?: string;
|
|
networkConnectionString: string;
|
|
isOnline: number;
|
|
dispatcherRate: number;
|
|
dispatcherStatus: number;
|
|
}
|
|
|
|
export interface SceneryData {
|
|
createdAt: string;
|
|
updatedAt?: string;
|
|
id: number;
|
|
name: string;
|
|
SUP: boolean;
|
|
authors: string;
|
|
availability: string;
|
|
backupJSON: any;
|
|
checkpoints?: string;
|
|
controlType: string;
|
|
lines?: string;
|
|
project?: string;
|
|
reqLevel: number;
|
|
routes?: string;
|
|
routesInfo: SceneryRoute[];
|
|
signalType: string;
|
|
supportersOnly?: boolean;
|
|
url?: string;
|
|
projectUrl?: string;
|
|
hash?: string;
|
|
abbr: string;
|
|
hidden: boolean;
|
|
ASDEK: boolean;
|
|
hashHistory: string[];
|
|
}
|
|
|
|
export interface SceneryRoute {
|
|
routeName: string;
|
|
isElectric: boolean;
|
|
isInternal: boolean;
|
|
isRouteSBL: boolean;
|
|
routeSpeed: number;
|
|
routeLength: number;
|
|
routeTracks: number;
|
|
hidden?: boolean;
|
|
realLineNo?: number;
|
|
}
|
|
|
|
export interface StopRow {
|
|
pointName: string;
|
|
pointKm: string;
|
|
isMain: boolean;
|
|
stopTime: number;
|
|
stopType: string;
|
|
scheduledArrivalDate: Date | null;
|
|
scheduledDepartureDate: Date | null;
|
|
realLine: string;
|
|
driveTime: number;
|
|
abbrevs: string[];
|
|
sceneryName: string;
|
|
arrivalKm: string;
|
|
arrivalSpeed: number;
|
|
arrivalTracks: number;
|
|
departureKm: string;
|
|
departureSpeed: number;
|
|
departureTracks: number;
|
|
headUnits: string[];
|
|
stockVmax: number;
|
|
stockLength: number;
|
|
stockMass: number;
|
|
}
|
|
|
|
export interface StopRowCZ {
|
|
pointName: string;
|
|
pointKm: string;
|
|
isMain: boolean;
|
|
stopTime: number;
|
|
stopType: string;
|
|
scheduledArrivalDate: Date | null;
|
|
scheduledDepartureDate: Date | null;
|
|
driveTime: number;
|
|
sceneryName: string;
|
|
arrivalSpeed: number;
|
|
departureSpeed: number;
|
|
arrivalTracks: number;
|
|
departureTracks: number;
|
|
headUnits: string[];
|
|
stockVmax: number;
|
|
stockLength: number;
|
|
stockMass: number;
|
|
|
|
arrivalDateStr: string;
|
|
departureDateStr: string;
|
|
}
|
|
|
|
export interface TimetablePathData {
|
|
sceneryName: string;
|
|
sceneryData: SceneryData | null;
|
|
arrivalLine: string;
|
|
departureLine: string;
|
|
arrivalLineData: SceneryRoute | null;
|
|
departureLineData: SceneryRoute | null;
|
|
}
|
|
|
|
export interface JournalTimetableShort {
|
|
id: number;
|
|
allStopsCount: number;
|
|
confirmedStopsCount: number;
|
|
createdAt: string;
|
|
beginDate: string;
|
|
driverId: number;
|
|
driverName: string;
|
|
route: string;
|
|
routeDistance: number;
|
|
currentDistance: number;
|
|
currentLocation: string[];
|
|
currentSceneryName: string;
|
|
currentSceneryHash: string;
|
|
driverLevel: number;
|
|
fulfilled: boolean;
|
|
terminated: boolean;
|
|
driverIsSupporter: boolean;
|
|
trainCategoryCode: string;
|
|
trainNo: number;
|
|
region: string;
|
|
hasDangerousCargo: boolean;
|
|
hasExtraDeliveries: boolean;
|
|
twr: boolean;
|
|
skr: boolean;
|
|
}
|
|
|
|
export interface JournalTimetableDetailed extends JournalTimetableShort {
|
|
id: number;
|
|
schemaVersion: string;
|
|
allStopsCount: number;
|
|
authorId: number;
|
|
authorName: string;
|
|
beginDate: string;
|
|
confirmedStopsCount: number;
|
|
currentDistance: number;
|
|
driverId: number;
|
|
driverName: string;
|
|
endDate: string;
|
|
fulfilled: boolean;
|
|
route: string;
|
|
routeDistance: number;
|
|
region: string;
|
|
sceneriesString: string;
|
|
scheduledBeginDate: string;
|
|
scheduledEndDate: string;
|
|
terminated: boolean;
|
|
timetableId: number;
|
|
trainCategoryCode: string;
|
|
trainNo: number;
|
|
twr: boolean;
|
|
skr: boolean;
|
|
stockString: string;
|
|
stockMass: number;
|
|
stockLength: number;
|
|
maxSpeed: number;
|
|
trainMaxSpeed: number;
|
|
hashesString: string;
|
|
currentSceneryName: string;
|
|
currentSceneryHash: any;
|
|
driverIsSupporter: boolean;
|
|
driverLevel: number;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
stockHistory: string[];
|
|
routeSceneries: string;
|
|
checkpointArrivals: any[];
|
|
checkpointDepartures: any[];
|
|
checkpointArrivalsScheduled: string[];
|
|
checkpointDeparturesScheduled: string[];
|
|
checkpointStopTypes: string[];
|
|
currentLocation: string[];
|
|
visitedSceneries: string[];
|
|
sceneryHashes: string[];
|
|
sceneryNames: string[];
|
|
checkpointComments: string[];
|
|
checkpointNames: string[];
|
|
path: string;
|
|
warningNotes: string;
|
|
hasDangerousCargo: boolean;
|
|
hasExtraDeliveries: boolean;
|
|
stopListString?: string;
|
|
}
|
|
|
|
export interface TimetableData {
|
|
trainNo: number;
|
|
mass: number;
|
|
length: number;
|
|
driverName: string;
|
|
driverId: number;
|
|
hasDangerousCargo: boolean;
|
|
hasExtraDeliveries: boolean;
|
|
warningNotes: string;
|
|
category: string;
|
|
route: string;
|
|
timetableId: number;
|
|
path: string;
|
|
trainMaxSpeed: number;
|
|
stopListString: string;
|
|
headUnits: string[];
|
|
savedTimestamp?: number;
|
|
journalCreatedAt?: number;
|
|
}
|