24 lines
761 B
C#
24 lines
761 B
C#
using System.ComponentModel.DataAnnotations;
|
|
using Jiaowu.Api.Domain.Common;
|
|
|
|
namespace Jiaowu.Api.Domain.Academic;
|
|
|
|
public interface IArchivable
|
|
{
|
|
bool IsArchived { get; set; }
|
|
DateTime? ArchivedAt { get; set; }
|
|
Guid? ArchivedByUserId { get; set; }
|
|
string? ArchiveReason { get; set; }
|
|
}
|
|
|
|
// Append-only history; deliberately independent of entity deletion and login-account lifecycle.
|
|
public sealed class ArchiveEvent : EntityBase
|
|
{
|
|
[MaxLength(20)] public required string Kind { get; set; }
|
|
public Guid EntityId { get; set; }
|
|
public bool IsArchived { get; set; }
|
|
public Guid ActorUserId { get; set; }
|
|
[MaxLength(256)] public string? ActorName { get; set; }
|
|
[MaxLength(500)] public required string Reason { get; set; }
|
|
}
|