package de.gecheckt.pdf.umbenenner.application.validation.technicaltest;

/**
 * Schweregrade für gescheiterte Prüfpunkte ({@link CheckpointResult.Failure}) des technischen Gesamttests.
 * <p>
 * Die Schweregrade sind analog zu den Stufen der editornahen Validierung
 * ({@code EditorValidationSeverity}), jedoch auf die Semantik des technischen Gesamttests
 * zugeschnitten:
 * <ul>
 *   <li>{@link #WARNING} – riskante, aber technisch zulässige Einstellung. Das Speichern und
 *       ein späterer headless-Lauf sind möglich, können aber unerwartetes Verhalten zeigen.</li>
 *   <li>{@link #ERROR} – ungültige oder fehlende Konfiguration. Die Einstellung ist im
 *       aktuellen Zustand nicht lauffähig.</li>
 * </ul>
 * <p>
 * Hinweise und neutrale Informationen werden als {@link CheckpointResult.Success} oder
 * {@link CheckpointResult.NotApplicable} modelliert, nicht als Failure mit diesem Enum.
 */
public enum CheckpointSeverity {

    /**
     * Riskante, aber technisch zulässige Einstellung.
     * Speichern und ein späterer headless-Lauf bleiben möglich.
     */
    WARNING,

    /**
     * Ungültige oder fehlende Einstellung – Konfiguration ist im aktuellen Zustand nicht lauffähig.
     */
    ERROR
}
