package de.gecheckt.pdf.umbenenner.application.port.out;

/**
 * Versiegeltes Ergebnis-Interface für eine Umbenennung einer Zieldatei via
 * {@link TargetFileRenamePort}.
 * <p>
 * Mögliche Ergebnisse:
 * <ul>
 *   <li>{@link TargetFileRenameSuccess} – die Umbenennung war erfolgreich.</li>
 *   <li>{@link TargetFileRenameFailureFileNotFound} – die ursprüngliche Datei wurde
 *       im Zielordner nicht gefunden.</li>
 *   <li>{@link TargetFileRenameFailureTargetExists} – der gewünschte neue Dateiname
 *       existiert bereits und gehört zu einer anderen Datei.</li>
 *   <li>{@link TargetFileRenameTechnicalFailure} – ein technischer Fehler beim
 *       Dateisystemzugriff ist aufgetreten.</li>
 * </ul>
 */
public sealed interface TargetFileRenameResult
        permits TargetFileRenameSuccess,
                TargetFileRenameFailureFileNotFound,
                TargetFileRenameFailureTargetExists,
                TargetFileRenameTechnicalFailure {
}
