package de.assecutor.votianlt.security;

/**
 * Rollen für die Bearbeitung von Rechnungen gemäß R-40 bis R-42.
 *
 * Die Rollen sind als Konstanten definiert und werden in der bestehenden
 * {@link de.assecutor.votianlt.model.User#getRoles()}-Sammlung als String hinterlegt.
 *
 * Backwards-compat: Bestehende Nutzer haben keine dieser Rollen — die
 * {@code USER}-Rolle bleibt vollumfänglich berechtigt, sofern keine speziellen
 * Rechnungsrollen explizit zugewiesen sind.
 */
public final class InvoiceRoles {

    /** Erstellt Entwürfe und stellt Rechnungen aus. */
    public static final String CREATOR = "INVOICE_CREATOR";
    /** Prüft Entwürfe und Folgebelege vor Freigabe. */
    public static final String REVIEWER = "INVOICE_REVIEWER";
    /** Gibt Storno- und Berichtigungsbelege frei (R-42). */
    public static final String APPROVER = "INVOICE_APPROVER";
    /** Erfasst Zahlungen und buchhalterische Vorgänge (R-25). */
    public static final String ACCOUNTANT = "INVOICE_ACCOUNTANT";

    private InvoiceRoles() {
    }
}
