namespace TakeoutSaaS.Application.Identity.Events;

/// <summary>
/// 身份用户操作日志消息。
/// </summary>
public sealed record IdentityUserOperationLogMessage
{
    /// <summary>
    /// 操作类型。
    /// </summary>
    public string OperationType { get; init; } = string.Empty;

    /// <summary>
    /// 目标类型。
    /// </summary>
    public string TargetType { get; init; } = string.Empty;

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

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

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

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

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

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