using Umbraco.Cms.Core.Models.Entities;
namespace Umbraco.Cms.Core.Models;
///
/// Represents an audited event.
///
///
///
/// The free-form details properties can be used to capture relevant infos (for example,
/// a user email and identifier) at the time of the audited event, even though they may change
/// later on - but we want to keep a track of their value at that time.
///
///
/// Depending on audit loggers, these properties can be purely free-form text, or
/// contain json serialized objects.
///
///
public interface IAuditEntry : IEntity, IRememberBeingDirty
{
///
/// Gets or sets the identifier of the user triggering the audited event.
///
int PerformingUserId { get; set; }
///
/// Gets or sets the key of the user triggering the audited event.
///
// TODO (V19): Remove the default implementations from this interface.
Guid? PerformingUserKey
{
get => null;
set { }
}
///
/// Gets or sets free-form details about the user triggering the audited event.
///
string? PerformingDetails { get; set; }
///
/// Gets or sets the IP address or the request triggering the audited event.
///
string? PerformingIp { get; set; }
///
/// Gets or sets the date and time of the audited event.
///
DateTime EventDateUtc { get; set; }
///
/// Gets or sets the identifier of the user affected by the audited event.
///
/// Not used when no single user is affected by the event.
int AffectedUserId { get; set; }
///
/// Gets or sets the key of the user affected by the audited event.
///
/// Not used when no single user is affected by the event.
// TODO (V19): Remove the default implementations from this interface.
Guid? AffectedUserKey
{
get => null;
set { }
}
///
/// Gets or sets free-form details about the entity affected by the audited event.
///
/// The entity affected by the event can be another user, a member...
string? AffectedDetails { get; set; }
///
/// Gets or sets the type of the audited event.
///
string? EventType { get; set; }
///
/// Gets or sets free-form details about the audited event.
///
string? EventDetails { get; set; }
}