/// Vordefinierte Reason-Listen pro Action-Typ.
///
/// Bewusst hier zentral statt jede UI-Stelle ihren eigenen Strings
/// definieren zu lassen — Konsistenz für den Fahrer und einfache
/// nachträgliche Anpassung (eine Datei, ein PR).
///
/// Jede Liste enthält die fachlich häufigsten Gründe. „Anderer Grund"
/// erscheint im Picker zusätzlich als Freitext-Fallback und ist nicht
/// Teil der Konstanten — der Picker fügt ihn selbst an.
class ReasonCatalog {
  const ReasonCatalog._();

  /// Gründe für `POST /deliveries/{id}/cancel`. Endgültig, deshalb
  /// bewusst Gründe, die einen erneuten Liefer-Versuch sinnlos machen.
  static const List<String> deliveryCancel = [
    'Adresse falsch',
    'Kunde unbekannt',
    'Kunde nicht erreichbar',
    'Termin endgültig verpasst',
    'Ware nicht verfügbar',
  ];

  /// Gründe für `POST /deliveries/{id}/hold`. Reversibel — typischerweise
  /// „kommt später nochmal" oder „muss intern geklärt werden".
  static const List<String> deliveryHold = [
    'Kunde nicht zu Hause',
    'Termin verschoben',
    'Wartet auf Rückruf',
  ];

  /// Gründe für `POST /scans action=remove`. Item wird aus der Lieferung
  /// genommen, kommt nicht mit.
  static const List<String> itemRemove = [
    'Artikel defekt',
    'Artikel nicht vorhanden',
    'Falscher Artikel im Lager',
    'Falsch gescannt',
  ];

  /// Gründe für `POST /scans action=hold`. Item kurzfristig zurückgestellt.
  static const List<String> itemHold = [
    'Lager findet Ware nicht',
    'Ware wird geprüft',
    'Zusatzklärung nötig',
  ];
}
