namespace Flaro.Api;
/// Wie hoch der Aufmacher auf der Startseite steht.
///
///
///
/// Vier Stufen, keine Zahl. Eine Pixelzahl einzustellen hiesse, sie
/// für jeden Bildschirm neu einzustellen — der Aufmacher misst sich an der
/// Fensterhöhe, nicht an einer festen Grösse. Vier Wörter sind das, was man
/// dazu zu sagen hat.
///
///
/// Was die Stufen bedeuten, steht im Regelwerk, nicht hier: der Server
/// weiss nichts von Bildpunkten, er merkt sich nur die Wahl. Nachzulesen bei
/// .hero in style.css.
///
///
/// Serverweit. Dieselbe Linie wie bei den Wiedergaberegeln: eine
/// Entscheidung des Gastgebers, nicht des Gastes.
///
///
public static class Aufmacherhoehe
{
public const string Schlüssel = "darstellung.aufmacher.hoehe";
/// Die Mitte — das, was vorher fest verdrahtet war.
public const string Vorgabe = "mittel";
///
/// Die fünfte kam nach. Am Telefon war selbst „sehr hoch" zu
/// flach — dort überschrieb eine feste Regel die Einstellung ganz. Das
/// ist behoben; die zusätzliche Stufe gibt darüber hinaus Luft.
///
private static readonly string[] Stufen = ["niedrig", "mittel", "hoch", "sehrhoch", "voll"];
/// Macht aus dem Gespeicherten eine der vier Stufen.
///
///
/// Unbekanntes wird zur Vorgabe statt zu einem Fehler: in der Spalte
/// steht, was irgendwann einmal hineingeschrieben wurde, und eine
/// Startseite, die daran scheitert, wäre die schlechtere Antwort.
///
public static string Lesen(string? wert)
{
var blank = wert?.Trim().ToLowerInvariant() ?? "";
return Stufen.Contains(blank) ? blank : Vorgabe;
}
/// Ob das eine Stufe ist, die es gibt.
public static bool Kennt(string? wert) =>
wert is not null && Stufen.Contains(wert.Trim().ToLowerInvariant());
}