justusjonas74/uic-918-3

View on GitHub
src/ka-data.ts

Summary

Maintainability
A
0 mins
Test Coverage
// Data from https://assets.static-bahn.de/dam/jcr:78591073-77fd-4e3d-968d-c5a7cf20eec5/mdb_305706_uic_918-3_vdv_stammdaten_version_16_12_2022%20mk.xls
const DB_ORTE: Record<number, string> = {
  8000001: '8000001 (Aachen Hbf)',
  8000002: '8000002 (Aalen)',
  8000441: '8000441 (Ahlen(Westf))',
  8000605: '8000605 (Arnsberg(Westf))',
  8000010: '8000010 (Aschaffenburg Hbf)',
  8000013: '8000013 (Augsburg Hbf )',
  8000712: '8000712 (Bad Homburg)',
  8000774: '8000774 (Baden-Baden)',
  8000025: '8000025 (Bamberg)',
  8000028: '8000028 (Bayreuth Hbf )',
  8000899: '8000899 (Bergisch-Gladbach)',
  8011155: '8011155 (Berlin Alexanderpl.)',
  8010038: '8010038 (Berlin Friedrichstr )',
  8011102: '8011102 (Berlin Gesundbrunnen)',
  8011160: '8011160 (Berlin Hbf)',
  8010255: '8010255 (Berlin Ostbahnhof)',
  8011118: '8011118 (Berlin Potsdamer Pl)',
  8011113: '8011113 (Berlin Südkreuz)',
  8010405: '8010405 (Berlin Wannsee)',
  8010406: '8010406 (Berlin Zoolg. Garten)',
  8010403: '8010403 (Berlin-Charlottenbg.)',
  8010036: '8010036 (Berlin-Lichtenberg)',
  8010404: '8010404 (Berlin-Spandau)',
  8000036: '8000036 (Bielefeld Hbf      )',
  8001055: '8001055 (Böblingen)',
  8000040: '8000040 (Bocholt)',
  8000041: '8000041 (Bochum Hbf)',
  8001038: '8001038 (Bochum-Dahlhausen   )',
  8000044: '8000044 (Bonn Hbf)',
  8001083: '8001083 (Bonn-Beuel)',
  8000047: '8000047 (Bottrop Hbf)',
  8000049: '8000049 (Braunschweig Hbf)',
  8000050: '8000050 (Bremen Hbf)',
  8000051: '8000051 (Bremerhaven Hbf)',
  8000054: '8000054 (Brilon Wald)',
  8000059: '8000059 (Bünde(Westf))',
  8000064: '8000064 (Celle)',
  8010184: '8010184 (Chemnitz Hbf)',
  8010073: '8010073 (Cottbus)',
  8000067: '8000067 (Crailsheim)',
  8000068: '8000068 (Darmstadt Hbf)',
  8000070: '8000070 (Delmenhorst)',
  8001420: '8001420 (Detmold)',
  8000080: '8000080 (Dortmund Hbf)',
  8010085: '8010085 (Dresden Hbf)',
  8000084: '8000084 (Düren)',
  8000223: '8000223 (Düren-Annakirmespl. )',
  8000085: '8000085 (Düsseldorf Hbf)',
  8000086: '8000086 (Duisburg Hbf)',
  8001611: '8001611 (Duisburg-Ruhrort    )',
  8000092: '8000092 (Elmshorn)',
  8010101: '8010101 (Erfurt Hbf)',
  8001844: '8001844 (Erlangen)',
  8000098: '8000098 (Essen Hbf)',
  8001900: '8001900 (Essen-Altenessen    )',
  8001920: '8001920 (Esslingen(Neckar))',
  8001972: '8001972 (Feldhausen)',
  8000103: '8000103 (Flensburg Hbf)',
  8000105: '8000105 (Frankfurt(Main)Hbf)',
  8002041: '8002041 (Frankfurt(Main)Süd)',
  8010113: '8010113 (Frankfurt(Oder))',
  8000107: '8000107 (Freiburg(Brsg)Hbf)',
  8002078: '8002078 (Freising)',
  8000112: '8000112 (Friedrichshafen St.)',
  8000114: '8000114 (Fürth(Bay)Hbf)',
  8000115: '8000115 (Fulda)',
  8000118: '8000118 (Gelsenkirchen Hbf)',
  8002224: '8002224 (Gelsenkirchen-Buer N)',
  8002225: '8002225 (Gelsenkirchen-Buer S)',
  8010125: '8010125 (Gera Hbf)',
  8000124: '8000124 (Gießen)',
  8000127: '8000127 (Göppingen)',
  8000128: '8000128 (Göttingen)',
  8010139: '8010139 (Greifswald)',
  8002461: '8002461 (Gütersloh Hbf)',
  8000142: '8000142 (Hagen Hbf)',
  8010159: '8010159 (Halle(Saale)Hbf)',
  8002548: '8002548 (Hamburg Dammtor)',
  8000147: '8000147 (Hamburg-Harburg     )',
  8002549: '8002549 (Hamburg Hbf)',
  8000146: '8000146 (Hamburg-Sternschanze)',
  8000148: '8000148 (Hameln)',
  8000149: '8000149 (Hamm (Westf.))',
  8000150: '8000150 (Hanau Hbf)',
  8000152: '8000152 (Hannover Hbf)',
  8003487: '8003487 (HannoverMesseLaatzen)',
  8000156: '8000156 (Heidelberg Hbf)',
  8000157: '8000157 (Heilbronn Hbf)',
  8000162: '8000162 (Herford)',
  8000164: '8000164 (Herne)',
  8000169: '8000169 (Hildesheim Hbf)',
  8003036: '8003036 (Ibbenbüren)',
  8000183: '8000183 (Ingolstadt Hbf)',
  8000186: '8000186 (Iserlohn)',
  8011956: '8011956 (Jena Paradies)',
  8011058: '8011058 (Jena Saalbf)',
  8011957: '8011957 (Jena West)',
  8000189: '8000189 (Kaiserslautern Hbf)',
  8000191: '8000191 (Karlsruhe Hbf)',
  8000193: '8000193 (Kassel Hbf)',
  8003200: '8003200 (Kassel-Wilhelmshöhe )',
  8000199: '8000199 (Kiel Hbf)',
  8000206: '8000206 (Koblenz Hbf)',
  8000207: '8000207 (Köln Hbf)',
  8003400: '8003400 (Konstanz)',
  8000211: '8000211 (Krefeld Hbf)',
  8000217: '8000217 (Landshut)',
  8010205: '8010205 (Leipzig Hbf)',
  8006713: '8006713 (Leverkusen Mitte    )',
  8000571: '8000571 (Lippstadt)',
  8000235: '8000235 (Ludwigsburg)',
  8000236: '8000236 (Ludwigshafen(Rh)Hbf)',
  8003729: '8003729 (Lörrach Hbf)',
  8003782: '8003782 (Lüdenscheid)',
  8000237: '8000237 (Lübeck Hbf)',
  8000238: '8000238 (Lüneburg)',
  8000239: '8000239 (Lünen Hbf)',
  8010224: '8010224 (Magdeburg Hbf)',
  8000240: '8000240 (Mainz Hbf)',
  8000244: '8000244 (Mannheim Hbf)',
  8000337: '8000337 (Marburg(Lahn))',
  8000252: '8000252 (Minden(Westf))',
  8000644: '8000644 (Moers)',
  8000253: '8000253 (Mönchengladbach Hbf )',
  8000259: '8000259 (Mülheim(Ruhr)Hbf    )',
  8000261: '8000261 (München Hbf)',
  8000263: '8000263 (Münster(Westf)Hbf   )',
  8000271: '8000271 (Neumünster)',
  8000274: '8000274 (Neuss Hbf )',
  8000275: '8000275 (Neustadt(Weinstr)Hbf)',
  8000284: '8000284 (Nürnberg Hbf)',
  8000286: '8000286 (Oberhausen Hbf      )',
  8000349: '8000349 (Offenbach(Main)Hbf)',
  8000290: '8000290 (Offenburg)',
  8000291: '8000291 (Oldenburg(Oldb))',
  8000853: '8000853 (Opladen)',
  8000294: '8000294 (Osnabrück Hbf)',
  8000297: '8000297 (Paderborn Hbf)',
  8000298: '8000298 (Passau Hbf)',
  8000299: '8000299 (Pforzheim)',
  8010275: '8010275 (Plauen(Vogtl) ob Bf)',
  8012666: '8012666 (Potsdam Hbf)',
  8004965: '8004965 (Ravensburg)',
  8000307: '8000307 (Recklinghausen Hbf  )',
  8000309: '8000309 (Regensburg)',
  8005033: '8005033 (Remscheid Hbf)',
  8000314: '8000314 (Reutlingen Hbf)',
  8000316: '8000316 (Rheine)',
  8010304: '8010304 (Rostock Hbf)',
  8000323: '8000323 (Saarbrücken Hbf)',
  8005265: '8005265 (Salzgitter-Bad)',
  8005269: '8005269 (Salzgitter-Immendorf)',
  8005270: '8005270 (Salzgitter-Lebenstdt)',
  8000325: '8000325 (Salzgitter-Ringelh.)',
  8005274: '8005274 (Salzgitter-Thiede)',
  8005275: '8005275 (Salzgitter-Watenst.)',
  8000329: '8000329 (Schwäbisch-Gmünd)',
  8005449: '8005449 (Schwäbisch Hall)',
  8010324: '8010324 (Schwerin Hbf)',
  8000046: '8000046 (Siegen)',
  8000076: '8000076 (Soest)',
  8000087: '8000087 (Solingen Hbf )',
  8005628: '8005628 (Speyer Hbf)',
  8000096: '8000096 (Stuttgart Hbf)',
  8000134: '8000134 (Trier Hbf)',
  8000141: '8000141 (Tübingen Hbf)',
  8000170: '8000170 (Ulm Hbf)',
  8000171: '8000171 (Unna)',
  8000192: '8000192 (Wanne-Eickel Hbf    )',
  8010366: '8010366 (Weimar)',
  8000250: '8000250 (Wiesbaden Hbf)',
  8006445: '8006445 (Wilhelmshaven HBF)',
  8000251: '8000251 (Witten Hbf)',
  8006552: '8006552 (Wolfsburg Hbf)',
  8000257: '8000257 (Worms Hbf)',
  8000260: '8000260 (Würzburg Hbf)',
  8000266: '8000266 (Wuppertal Hbf)',
  8010397: '8010397 (Zwickau(Sachs)Hbf)'
};

const DB_PRODUKTE: Record<number, string> = {
  1000: '1000 (City-mobil Einzelfahrt)',
  1001: '1001 (City-mobil Tageskarte)',
  1002: '1002 (Baden-Württemberg-Ticket)',
  1004: '1004 (Baden-Württemberg-Ticket Nacht)',
  1005: '1005 (Bayern-Ticket)',
  1007: '1007 (Bayern-Ticket-Nacht)',
  1008: '1008 (Brandenburg-Berlin-Ticket)',
  1009: '1009 (Brandenburg-Berlin-Ticket-Nacht)',
  1010: '1010 (Mecklenburg-Vorpommern-Ticket)',
  1011: '1011 (Niedersachsen-Ticket)', // deprecated
  1012: '1012 (Rheinland-Pfalz-Ticket)',
  1013: '1013 (Rheinland-Pfalz-Ticket-Nacht)',
  1014: '1014 (Saarland-Ticket)',
  1015: '1015 (Saarland-Ticket-Nacht)',
  1016: '1016 (Sachsen-Anhalt-Ticket)',
  1017: '1017 (Sachsen-Ticket)',
  1018: '1018 (Schleswig-Holstein-Ticket)',
  1019: '1019 (Thüringen-Ticket)',
  1200: '1200 (Schönes-Wochenende-Ticket)',
  1201: '1201 (Quer-Durchs-Land-Ticket)',
  1202: '1202 (9-Euro-Ticket)', // deprecated
  1020: '1020 (Rheinland-Pfalz-Ticket + Luxemburg)',
  1022: '1022 (Bayern-Böhmen-Ticket)',
  1030: '1030 (Sachsen-Anhalt-Ticket plus Westharz)',
  1031: '1031 (Thüringen-Ticket plus Westharz)',
  1032: '1032 (Sachsen-Ticket plus Westharz)',
  3000: '3000 (In-Out-System)',
  9999: '9999 (Deutschlandticket)'
};

export type OrgID = number;
export type Produktnummer = number;
export type TarifpunktNr = number;
export interface VDVKAData {
  org_id: Record<OrgID, string>;
  efmprodukte: Record<OrgID, Record<Produktnummer, string>>;
  tarifpunkte: Record<OrgID, Record<TarifpunktNr, string>>;
}
const kaData: VDVKAData = {
  org_id: {
    5000: '5000 (VDV E-Ticket Service)',
    6262: '6262 (DB Fernverkehr)',
    6263: '6263 (DB Regio Zentrale)',
    6260: '6260 (DB Vertrieb GmbH)',
    39030: 'TEST 39030 (DB Fernverkehr)',
    39031: 'TEST 39030 (DB Regio Zentrale)',
    39028: 'TEST 39028 (DB Vertrieb GmbH)'
  },
  efmprodukte: {
    6262: {
      2000: '2000 (City-Ticket)'
    },
    39030: {
      2000: '2000 (City-Ticket)'
    },
    6263: DB_PRODUKTE,
    39031: DB_PRODUKTE
  },
  tarifpunkte: {
    5000: {
      1: '1 (Bundesrepublik gesamt)',
      2: '2 (Baden-Württemberg)',
      3: '3 (Bayern)',
      4: '4 (Berlin)',
      5: '5 (Brandenburg)',
      6: '6 (Bremen)',
      7: '7 (Hamburg)',
      8: '8 (Hessen)',
      9: '9 (Mecklenburg-Vorpommern)',
      10: '10 (Niedersachsen)',
      11: '11 (Nordrhein-Westfalen)',
      12: '12 (Rheinland-Pfalz)',
      13: '13 (Saarland)',
      14: '14 (Sachsen)',
      15: '15 (Sachsen-Anhalt)',
      16: '16 (Schleswig-Holstein)',
      17: '17 (Thüringen)'
    },
    6262: DB_ORTE,
    6263: DB_ORTE
  }
};

export default kaData;