43 lines
1.4 KiB
C#
43 lines
1.4 KiB
C#
|
|
using DD.Persistence.Database.EntityAbstractions;
|
|
using DD.Persistence.ModelsAbstractions;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace DD.Persistence.Database.Entity;
|
|
|
|
/// <summary>
|
|
/// Часть записи, описывающая изменение
|
|
/// </summary>
|
|
[Table("change_log")]
|
|
public class ChangeLog : IChangeLog
|
|
{
|
|
[Key, Comment("Ключ записи")]
|
|
public Guid Id { get; set; }
|
|
|
|
[Comment("Дискриминатор таблицы")]
|
|
public Guid IdDiscriminator { get; set; }
|
|
|
|
[Comment("Автор изменения")]
|
|
public Guid IdAuthor { get; set; }
|
|
|
|
[Comment("Дата создания записи")]
|
|
public DateTimeOffset Creation { get; set; }
|
|
|
|
[Comment("Дата устаревания (например при удалении)")]
|
|
public DateTimeOffset? Obsolete { get; set; }
|
|
|
|
[Comment("Id заменяющей записи")]
|
|
public Guid? IdNext { get; set; }
|
|
|
|
[Column(TypeName = "jsonb"), Comment("Значение")]
|
|
public required IDictionary<string, object> Value { get; set; }
|
|
|
|
[Required, Comment("Id коммита")]
|
|
public Guid IdCommit { get; set; }
|
|
|
|
[Required, ForeignKey(nameof(IdCommit)), Comment("Коммит пользователя")]
|
|
public virtual ChangeLogCommit Commit { get; set; } = null!;
|
|
}
|