namespace DD.Persistence.Database.Model;

/// <summary>
/// Часть записи, описывающая изменение
/// </summary>
public interface IChangeLog
{
    /// <summary>
    /// Ключ записи
    /// </summary>
    public Guid Id { get; set; }

    /// <summary>
    /// Автор изменения
    /// </summary>
    public Guid IdAuthor { get; set; }

    /// <summary>
    /// Редактор
    /// </summary>
    public Guid? IdEditor { get; set; }

    /// <summary>
    /// Дата создания записи
    /// </summary>
    public DateTimeOffset Creation { get; set; }

    /// <summary>
    /// Дата устаревания (например при удалении)
    /// </summary>
    public DateTimeOffset? Obsolete { get; set; }

    /// <summary>
    /// Id заменяющей записи
    /// </summary>
    public Guid? IdNext { get; set; }

    /// <summary>
    /// Дискриминатор таблицы
    /// </summary>
    public Guid IdDiscriminator { get; set; }

    /// <summary>
    /// Значение
    /// </summary>
    public IDictionary<string, object> Value { get; set; }
}