using OmsorgCore.Domain.Common;
using OmsorgCore.Domain.Enums;

namespace OmsorgCore.Domain.Entities;

/// <summary>
/// Individuell für einen Benutzer gewährtes oder entzogenes Recht — überschreibt den Rollen-Default.
/// Siehe Blueprint Kap. 6.5 ("Rollen dienen als Vorlage. Individuelle Rechte können zusätzlich
/// vergeben oder entzogen werden.").
/// </summary>
public class UserPermissionOverride : Entity
{
    public Guid UserId { get; set; }
    public User User { get; set; } = null!;

    public ModuleType Module { get; set; }
    public PermissionAction Action { get; set; }
    public PermissionEffect Effect { get; set; }
    public PermissionScope Scope { get; set; }
}
