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

import java.util.Objects;

/**
 * Ergebnis einer fehlgeschlagenen Umbenennung, weil die Quelldatei im Zielordner
 * nicht mehr vorhanden ist.
 * <p>
 * Gibt an, dass {@link TargetFileRenamePort#rename(String, String)} die Datei mit dem
 * angegebenen {@code oldFileName} nicht gefunden hat. Dies kann eintreten, wenn die
 * Datei zwischenzeitlich von einem anderen Prozess gelöscht oder verschoben wurde.
 *
 * @param oldFileName der Dateiname (ohne Pfad), der im Zielordner erwartet wurde, aber
 *                    nicht gefunden wurde; nie null
 */
public record TargetFileRenameFailureFileNotFound(String oldFileName) implements TargetFileRenameResult {

    /**
     * Kompakter Konstruktor zur Validierung des Pflichtfelds.
     *
     * @throws NullPointerException wenn {@code oldFileName} null ist
     */
    public TargetFileRenameFailureFileNotFound {
        Objects.requireNonNull(oldFileName, "oldFileName must not be null");
    }
}
