using System.Collections.Generic;
using Umbraco.Core.Models.Entities;
namespace Umbraco.Core.Models
{
///
/// Represents a consent state.
///
///
/// A consent is fully identified by a source (whoever is consenting), a context (for
/// example, an application), and an action (whatever is consented).
/// A consent state registers the state of the consent (granted, revoked...).
///
public interface IConsent : IEntity, IRememberBeingDirty
{
///
/// Determines whether the consent entity represents the current state.
///
bool Current { get; }
///
/// Gets the unique identifier of whoever is consenting.
///
string Source { get; }
///
/// Gets the unique identifier of the context of the consent.
///
///
/// Represents the domain, application, scope... of the action.
/// When the action is a Udi, this should be the Udi type.
///
string Context { get; }
///
/// Gets the unique identifier of the consented action.
///
string Action { get; }
///
/// Gets the state of the consent.
///
ConsentState State { get; }
///
/// Gets some additional free text.
///
string Comment { get; }
///
/// Gets the previous states of this consent.
///
IEnumerable History { get; }
}
}