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

import java.util.Objects;

/**
 * Ergebnis, wenn keine Kopie notwendig ist, weil im Zielverzeichnis bereits eine Datei
 * mit identischem Inhalt (gleicher Fingerprint) vorhanden ist.
 * <p>
 * Der Dokument-Stammsatz wird in diesem Fall trotzdem konsistent auf
 * {@link de.gecheckt.pdf.umbenenner.domain.model.ProcessingStatus#SUCCESS} gehoben und
 * der vorhandene Zieldateiname wird übernommen, sodass das Dokument fachlich als
 * abgeschlossen gilt.
 *
 * @param existingFileName der Dateiname (ohne Pfad) der bereits vorhandenen identischen
 *                         Zieldatei; nie null
 */
public record ManualFileCopyNoOpIdenticalTarget(String existingFileName)
        implements ManualFileCopyResult {

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