using adas_core.Domain.Enums;

namespace adas_core.Domain;

/// <summary>
/// Represents a set of permissions, providing functionality related to access control and authorization.
/// </summary>
public class Permissions
{
    public SourcePermissions Write { get; set; } = new()
    {
        Actions = [ActionsEnum.Actions.View, ActionsEnum.Actions.Write]
    };

    public SourcePermissions Read { get; set; } = new()
    {
        Actions = [ActionsEnum.Actions.View]
    };
}

/// <summary>
/// Represents a set of permissions associated with a source, defining the access rights or constraints applicable to it.
/// </summary>
/// <remarks>
/// This class encapsulates permission-related information for a given source context.
/// </remarks>
public class SourcePermissions
{
    public List<ActionsEnum.Actions> Actions { get; set; } = [];
}