using OmsorgCore.Domain.Common;

namespace OmsorgCore.Domain.Entities;

/// <summary>
/// Ein erlaubter Übergang zwischen zwei <see cref="ValueListItem"/>n derselben Liste. Wird aktuell
/// nur für die Liste "OrderStatus" befüllt (FR-EM-2) — die meisten Listen brauchen keine
/// Übergangsregeln und lassen diese Tabelle für ihren <see cref="ValueList.Key"/> leer.
/// </summary>
public class ValueListItemTransition : Entity
{
    public Guid FromItemId { get; set; }
    public ValueListItem FromItem { get; set; } = null!;

    public Guid ToItemId { get; set; }
    public ValueListItem ToItem { get; set; } = null!;

    /// <summary>
    /// Nur für "TimeEntryStatus" ausgewertet: <c>false</c> markiert eine Selbst-Einreichungs-Kante,
    /// die der Ersteller ohne Büro-Freigabe auslösen darf (z. B. Entwurf→Eingereicht). Für alle
    /// anderen Listen (u. a. "OrderStatus") bleibt der Default <c>true</c> ohne Verhaltensänderung.
    /// </summary>
    public bool RequiresApproval { get; set; } = true;
}
