/**
 * 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<string, string[]> = {
  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] ?? [];
}
