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

import java.util.Objects;

/**
 * Ergebnis, wenn das zu kopierende Dokument in der Persistenz nicht gefunden wurde.
 * <p>
 * Gibt an, dass kein Dokument-Stammsatz mit dem angegebenen Fingerprint existiert.
 * Dies kann eintreten, wenn der Fingerprint ungültig ist oder der Datensatz
 * zwischenzeitlich gelöscht wurde.
 *
 * @param reason menschenlesbare Begründung, warum das Dokument nicht gefunden wurde;
 *               nie null
 */
public record ManualFileCopyDocumentNotFound(String reason) implements ManualFileCopyResult {

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