using TakeoutSaaS.Domain.Tenants.Enums;
using TakeoutSaaS.Shared.Abstractions.Entities;

namespace TakeoutSaaS.Domain.Tenants.Entities;

/// <summary>
/// 租户运营审核日志。
/// </summary>
public sealed class TenantAuditLog : AuditableEntityBase
{
    /// <summary>
    /// 关联的租户标识。
    /// </summary>
    public long TenantId { get; set; }

    /// <summary>
    /// 操作类型。
    /// </summary>
    public TenantAuditAction Action { get; set; }

    /// <summary>
    /// 日志标题。
    /// </summary>
    public string Title { get; set; } = string.Empty;

    /// <summary>
    /// 详细描述。
    /// </summary>
    public string? Description { get; set; }

    /// <summary>
    /// 操作人 ID。
    /// </summary>
    public long? OperatorId { get; set; }

    /// <summary>
    /// 操作人名称。
    /// </summary>
    public string? OperatorName { get; set; }

    /// <summary>
    /// 原状态。
    /// </summary>
    public TenantStatus? PreviousStatus { get; set; }

    /// <summary>
    /// 新状态。
    /// </summary>
    public TenantStatus? CurrentStatus { get; set; }
}
