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

/**
 * Persistierte Scheduler-Einstellungen aus der {@code .properties}-Datei.
 * <p>
 * Dieses DTO repräsentiert die Scheduler-Property
 * {@code scheduler.interval.seconds}, wie sie aus der Konfigurationsdatei
 * gelesen wird. Es wird von {@link SchedulerSettingsPort#loadSettings()}
 * zurückgegeben und dient als Eingabe für die Scheduler-Tab-Anzeige.
 *
 * @param intervalSeconds konfigurierte Wartezeit in Sekunden zwischen
 *                        Läufen; entspricht dem gelesenen Rohwert
 *                        ohne weitere Validierung
 */
public record SchedulerSettings(int intervalSeconds) {

    /** Standardwert für {@code scheduler.interval.seconds}, wenn der Key fehlt oder leer ist. */
    public static final int DEFAULT_INTERVAL_SECONDS = 180;

    /**
     * Erzeugt eine {@code SchedulerSettings}-Instanz mit Standardwerten.
     *
     * @return Instanz mit {@code intervalSeconds=180}
     */
    public static SchedulerSettings defaults() {
        return new SchedulerSettings(DEFAULT_INTERVAL_SECONDS);
    }
}
