/** * Top-Städte pro Bundesland (anonymized DiGA-Demographics). * Curated by population — covers ~85% of population. * Bundesland-Code = ISO 3166-2:DE (BW, BY, BE, ...). * * Falls User-Stadt nicht in Liste: Fallback "Andere" → free-text TextInput * (separate UX-Path, in Phase C wenn relevant). */ export const GERMAN_CITIES_BY_BUNDESLAND: Record = { BW: [ 'Stuttgart', 'Mannheim', 'Karlsruhe', 'Freiburg', 'Heidelberg', 'Heilbronn', 'Ulm', 'Pforzheim', 'Reutlingen', 'Esslingen', 'Tübingen', 'Ludwigsburg', 'Konstanz', 'Aalen', 'Sindelfingen', 'Villingen-Schwenningen', 'Friedrichshafen', 'Offenburg', 'Schwäbisch Gmünd', 'Göppingen', 'Rastatt', 'Baden-Baden', 'Ravensburg', 'Tuttlingen', 'Lörrach', 'Bietigheim-Bissingen', ], BY: [ 'München', 'Nürnberg', 'Augsburg', 'Regensburg', 'Würzburg', 'Ingolstadt', 'Fürth', 'Erlangen', 'Bayreuth', 'Bamberg', 'Aschaffenburg', 'Landshut', 'Kempten', 'Rosenheim', 'Neu-Ulm', 'Schweinfurt', 'Passau', 'Freising', 'Straubing', 'Dachau', 'Memmingen', 'Hof', 'Coburg', 'Ansbach', 'Erding', 'Weiden', 'Kaufbeuren', 'Garmisch-Partenkirchen', ], BE: ['Berlin'], BB: [ 'Potsdam', 'Cottbus', 'Brandenburg an der Havel', 'Frankfurt (Oder)', 'Oranienburg', 'Eberswalde', 'Falkensee', 'Bernau', 'Königs Wusterhausen', 'Hennigsdorf', 'Werder', 'Strausberg', 'Fürstenwalde', 'Schwedt', 'Senftenberg', ], HB: ['Bremen', 'Bremerhaven'], HH: ['Hamburg'], HE: [ 'Frankfurt am Main', 'Wiesbaden', 'Kassel', 'Darmstadt', 'Offenbach', 'Hanau', 'Gießen', 'Marburg', 'Fulda', 'Rüsselsheim', 'Wetzlar', 'Bad Homburg', 'Oberursel', 'Rodgau', 'Dreieich', 'Limburg', 'Bensheim', 'Neu-Isenburg', 'Maintal', 'Langen', 'Hofheim', 'Bad Vilbel', ], MV: [ 'Rostock', 'Schwerin', 'Neubrandenburg', 'Stralsund', 'Greifswald', 'Wismar', 'Güstrow', 'Waren', 'Anklam', 'Bergen auf Rügen', 'Parchim', 'Neustrelitz', ], NI: [ 'Hannover', 'Braunschweig', 'Oldenburg', 'Osnabrück', 'Wolfsburg', 'Göttingen', 'Hildesheim', 'Salzgitter', 'Delmenhorst', 'Lüneburg', 'Wilhelmshaven', 'Celle', 'Hameln', 'Lingen', 'Cuxhaven', 'Emden', 'Goslar', 'Stade', 'Nordhorn', 'Peine', 'Melle', 'Garbsen', 'Langenhagen', ], NW: [ 'Köln', 'Düsseldorf', 'Dortmund', 'Essen', 'Duisburg', 'Bochum', 'Wuppertal', 'Bielefeld', 'Bonn', 'Münster', 'Mönchengladbach', 'Gelsenkirchen', 'Aachen', 'Krefeld', 'Oberhausen', 'Hagen', 'Hamm', 'Mülheim', 'Leverkusen', 'Solingen', 'Herne', 'Neuss', 'Paderborn', 'Bottrop', 'Recklinghausen', 'Bergisch Gladbach', 'Remscheid', 'Moers', 'Siegen', 'Witten', 'Iserlohn', 'Gütersloh', 'Marl', 'Lünen', 'Velbert', 'Minden', 'Dorsten', 'Detmold', 'Castrop-Rauxel', 'Arnsberg', 'Lüdenscheid', 'Bocholt', 'Dinslaken', 'Lippstadt', ], RP: [ 'Mainz', 'Ludwigshafen', 'Koblenz', 'Trier', 'Kaiserslautern', 'Worms', 'Neuwied', 'Neustadt', 'Speyer', 'Frankenthal', 'Bad Kreuznach', 'Pirmasens', 'Idar-Oberstein', 'Zweibrücken', 'Andernach', 'Ingelheim', 'Mayen', 'Landau', ], SL: ['Saarbrücken', 'Neunkirchen', 'Homburg', 'Völklingen', 'Sankt Ingbert', 'Saarlouis', 'Merzig', 'Dillingen'], SN: [ 'Leipzig', 'Dresden', 'Chemnitz', 'Zwickau', 'Plauen', 'Görlitz', 'Freiberg', 'Bautzen', 'Pirna', 'Riesa', 'Hoyerswerda', 'Meißen', 'Radebeul', 'Freital', 'Glauchau', 'Annaberg-Buchholz', 'Markkleeberg', 'Limbach-Oberfrohna', ], ST: [ 'Magdeburg', 'Halle', 'Dessau-Roßlau', 'Wittenberg', 'Stendal', 'Halberstadt', 'Bernburg', 'Naumburg', 'Weißenfels', 'Aschersleben', 'Merseburg', 'Schönebeck', 'Bitterfeld-Wolfen', 'Sangerhausen', 'Köthen', 'Zeitz', ], SH: [ 'Kiel', 'Lübeck', 'Flensburg', 'Neumünster', 'Norderstedt', 'Elmshorn', 'Pinneberg', 'Itzehoe', 'Wedel', 'Ahrensburg', 'Geesthacht', 'Bad Oldesloe', 'Rendsburg', 'Reinbek', 'Heide', 'Husum', ], TH: [ 'Erfurt', 'Jena', 'Gera', 'Weimar', 'Nordhausen', 'Eisenach', 'Gotha', 'Suhl', 'Mühlhausen', 'Altenburg', 'Sondershausen', 'Bad Salzungen', 'Sonneberg', 'Saalfeld', 'Greiz', 'Apolda', 'Arnstadt', 'Pößneck', ], }; export function getCitiesForBundesland(bundeslandCode: string | null | undefined): string[] { if (!bundeslandCode) return []; // Akzeptiert sowohl 'BY' als auch 'DE-BY' (Backend-Schema sendet `DE-`-prefix) const code = bundeslandCode.startsWith('DE-') ? bundeslandCode.slice(3) : bundeslandCode; return GERMAN_CITIES_BY_BUNDESLAND[code] ?? []; }