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 AuditedAggregateRoot : AuditedAggregateRoot
{
}
///
/// This class can be used to simplify implementing for aggregate roots.
///
/// Type of the primary key of the entity
[Serializable]
public abstract class AuditedAggregateRoot : CreationAuditedAggregateRoot, IAudited
{
///
/// Last modification date of this entity.
///
public virtual DateTime? LastModificationTime { get; set; }
///
/// Last modifier user of this entity.
///
public virtual long? LastModifierUserId { get; set; }
}
///
/// This class can be used to simplify implementing for aggregate roots.
///
/// Type of the primary key of the entity
/// Type of the user
[Serializable]
public abstract class AuditedAggregateRoot : AuditedAggregateRoot, IAudited
where TUser : IEntity
{
///
/// Reference to the creator user of this entity.
///
[ForeignKey("CreatorUserId")]
public virtual TUser CreatorUser { get; set; }
///
/// Reference to the last modifier user of this entity.
///
[ForeignKey("LastModifierUserId")]
public virtual TUser LastModifierUser { get; set; }
}
}