using System; using System.ComponentModel.DataAnnotations.Schema; namespace Abp.Domain.Entities.Auditing { /// /// A shortcut of for most used primary key type (). /// [Serializable] public abstract class FullAuditedAggregateRoot : FullAuditedAggregateRoot { } /// /// Implements to be a base class for full-audited aggregate roots. /// /// Type of the primary key of the entity [Serializable] public abstract class FullAuditedAggregateRoot : AuditedAggregateRoot, IFullAudited { /// /// Is this entity Deleted? /// public virtual bool IsDeleted { get; set; } /// /// Which user deleted this entity? /// public virtual long? DeleterUserId { get; set; } /// /// Deletion time of this entity. /// public virtual DateTime? DeletionTime { get; set; } } /// /// Implements to be a base class for full-audited aggregate roots. /// /// Type of the primary key of the entity /// Type of the user [Serializable] public abstract class FullAuditedAggregateRoot : AuditedAggregateRoot, IFullAudited where TUser : IEntity { /// /// Is this entity Deleted? /// public virtual bool IsDeleted { get; set; } /// /// Reference to the deleter user of this entity. /// [ForeignKey("DeleterUserId")] public virtual TUser DeleterUser { get; set; } /// /// Which user deleted this entity? /// public virtual long? DeleterUserId { get; set; } /// /// Deletion time of this entity. /// public virtual DateTime? DeletionTime { get; set; } } }