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

namespace TakeoutSaaS.Domain.Stores.Entities;

/// <summary>
/// 门店审核记录。
/// </summary>
public sealed class StoreAuditRecord : MultiTenantEntityBase
{
    /// <summary>
    /// 门店标识。
    /// </summary>
    public long StoreId { get; set; }

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

    /// <summary>
    /// 操作前状态。
    /// </summary>
    public StoreAuditStatus? PreviousStatus { get; set; }

    /// <summary>
    /// 操作后状态。
    /// </summary>
    public StoreAuditStatus NewStatus { get; set; }

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

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

    /// <summary>
    /// 驳回理由 ID。
    /// </summary>
    public long? RejectionReasonId { get; set; }

    /// <summary>
    /// 驳回理由文本。
    /// </summary>
    public string? RejectionReason { get; set; }

    /// <summary>
    /// 备注。
    /// </summary>
    public string? Remarks { get; set; }
}
