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; }
}
}