using TakeoutSaaS.Shared.Abstractions.Entities;

namespace TakeoutSaaS.Domain.Tenants.Entities;

/// <summary>
/// 运营操作日志。
/// </summary>
public sealed class OperationLog : AuditableEntityBase
{
    /// <summary>
    /// 操作类型：BatchExtend, BatchRemind, StatusChange 等。
    /// </summary>
    public string OperationType { get; set; } = string.Empty;

    /// <summary>
    /// 目标类型：Subscription, Bill 等。
    /// </summary>
    public string TargetType { get; set; } = string.Empty;

    /// <summary>
    /// 目标ID列表（JSON）。
    /// </summary>
    public string? TargetIds { get; set; }

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

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

    /// <summary>
    /// 操作参数（JSON）。
    /// </summary>
    public string? Parameters { get; set; }

    /// <summary>
    /// 操作结果（JSON）。
    /// </summary>
    public string? Result { get; set; }

    /// <summary>
    /// 是否成功。
    /// </summary>
    public bool Success { get; set; }
}
