package de.assecutor.votianlt.model.invoices;

/**
 * Lebenszyklus einer Rechnung gemäß R-01 bis R-04.
 *
 * DRAFT       – noch in Bearbeitung, darf editiert oder gelöscht werden.
 * ISSUED      – formal ausgestellt/gebucht, darf nicht mehr direkt überschrieben werden.
 * SENT        – an den Empfänger versendet.
 * CANCELLED   – durch eine Stornorechnung aufgehoben.
 * CORRECTED   – durch eine Berichtigung formal korrigiert (Original bleibt sichtbar).
 */
public enum InvoiceStatus {
    DRAFT, ISSUED, SENT, CANCELLED, CORRECTED;

    public boolean isFinalized() {
        return this != DRAFT;
    }

    public boolean isMutable() {
        return this == DRAFT;
    }
}
