summaryrefslogtreecommitdiff
path: root/vdv-server/Example452.hs
blob: 51d4a46103288b72be75539e94345b2bdaec931e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
{-# LANGUAGE OverloadedLists, OverloadedStrings #-}

-- |

module Example452 where
import VDV451 (Latitude(..), Longitude(..), ÖPNVOptions(..), ÖPNVTable(..), öpnvSchnittstellenZip)
import VDV452
import Data.Vector (Vector)
import Data.Time (Day, fromGregorian, getCurrentTime, utctDay)
import Codec.Archive.Zip (Archive)


-- TODO: RecHp, MengeFztTyp, OrtHztf, RecUeb, UebFzt, RecUmlauf


t993 :: Day -> Vector BasisVerGueltigkeit
t993 day = [ BasisVerGueltigkeit day 1 ]

t485 :: Vector MengeBasisVersionen
t485 = [ MengeBasisVersionen 1 "die eine und einzige version" ]



t998 :: Vector MengeOnrTyp
t998 = [ MengeOnrTyp 1 OnrHaltepunkt "HP" "Haltepunkt" ]

t997 :: Vector MengeOrtTyp
t997 = [ MengeOrtTyp 1 OrtHaltestelle "Haltestelle" ]

t253 :: Vector RecOrt
t253 = [ RecOrt 1 OnrHaltepunkt 10 "Passau Hbf" 10 8000298 "de:09262:156" 0 OrtHaltestelle Nothing "PA" "Passau Hbf" Nothing (Just $ Longitude 13.450776) (Just $ Latitude 48.573632) Nothing Nothing
       , RecOrt 1 OnrHaltepunkt 11 "Freyung Bf" 11 8002094 "de:09272:4851" 1 OrtHaltestelle Nothing "FR" "Freyung" Nothing (Just $ Longitude 13.548351) (Just $ Latitude 48.802843) Nothing Nothing
       ]

t229 :: Vector RecHp
t229 = [ RecHp 1 OrtHaltestelle 10 10 "Passau Hbf"
       , RecHp 1 OrtHaltestelle 11 11 "Freyung Bf"]

t293 :: Vector MengeFzgTyp
t293 = [ MengeFzgTyp 1 1 0 0 0 0 80 30 "irgendein Fahrzeug" 1 "dings" Nothing Nothing Nothing ]

-- mögliche anzeigetexte eines DFI
t994 :: Vector RecZnr
t994 = [ RecZnr 1 1 "PA" "Passau Hbf" "Passau Hbf" "Passau Hbf" ""
       , RecZnr 1 2 "FR" "Freyung" "Freyung" "Freyung" ""
       ]

t290 :: Vector MengeTagesart
t290 = [ MengeTagesart 1 1 "normaler Betriebstag"
       , MengeTagesart 1 2 "Sonderfahrt Dezember"]

t348 :: Vector Firmenkalender
t348 = [ Firmenkalender 1 (fromGregorian 3 12 2022) "Sonderfahrt Dezember" 2 ]

t222 :: Vector MengeFgr
t222 = [ MengeFgr 1 1 "gibt nur eine" ]

t332 :: Vector MengeFahrtart
t332 = [ MengeFahrtart 1 Normalfahrt "Normal"]

t333 :: Vector MengeBereich
t333 = [ MengeBereich 1 1 "bahn" "die ilztalbahn fährt bahn, sonst nix" ]


-- let's just say there's 30km between the stations
t299 :: Vector RecSel
t299 = [ RecSel 1 1 OnrHaltepunkt 10 11 OrtHaltestelle 30000 ]

-- let's just say there's an hour between the two stations
t282 :: Vector SelFztFeld
t282 = [ SelFztFeld 1 1 1 OrtHaltestelle 10 11 OrtHaltestelle 3600 ]

t999 :: Vector OrtHztf
t999 = [ OrtHztf 1 1 OrtHaltestelle 10 60
       , OrtHztf 1 1 OrtHaltestelle 11 60
       ]

-- zwei halte für eine fahrt auf linie 13
t246 :: Vector LidVerlauf
t246 = [ LidVerlauf 1 1 56446 "" OrtHaltestelle 10 1 Nothing 0 True True False False False False
       , LidVerlauf 1 2 56446 "" OrtHaltestelle 11 2 Nothing 0 True True False False False False]

-- keine ahnung was die routennummer soll, steht jetzt auf 0
t226 :: Vector RecLid
t226 = [ RecLid 1 56446 "itb" 1 0 0 "itb" "Ilztalbahn" Normalfahrt Nothing "Ilztalbahn" ]




t715 :: Vector RecFrt
t715 = [ RecFrt 1 1 28800 56446 2 Nothing Normalfahrt 1 "" Nothing 56446 False False "P 56446" 0 ]


mkArchive :: IO Archive
mkArchive = do
  time <- getCurrentTime
  let options = ÖPNVOptions
       { öpnvSource = "Datentest"
       , öpnvProgramVersion = "0.0.1"
       , öpnvDataVersion = "test-1"
       }
  pure $ öpnvSchnittstellenZip options time
    [ ÖPNVTable (t993 (utctDay time))
    , ÖPNVTable t485
    , ÖPNVTable t998
    , ÖPNVTable t997
    , ÖPNVTable t253
    , ÖPNVTable t229
    , ÖPNVTable t293
    , ÖPNVTable t994
    , ÖPNVTable t290
    , ÖPNVTable t348
    , ÖPNVTable t222
    , ÖPNVTable t332
    , ÖPNVTable t333
    , ÖPNVTable t299
    , ÖPNVTable t282
    , ÖPNVTable t999
    , ÖPNVTable t246
    , ÖPNVTable t226
    , ÖPNVTable t715
    ]