using SqlSugar;

namespace QYZH.InteractiveMagazine.Models.Entity;

/// <summary>
/// 操作日志表 — 记录后台管理员的所有手动操作
/// </summary>
[SugarTable("OperationLog")]
public partial class OperationLog : SqlSugarBaseEntity
{
    public OperationLog() { }

    /// <summary>
    /// Desc:操作人Id（管理员Id）
    /// Default:
    /// Nullable:False
    /// </summary>
    public long OperatorId { get; set; }

    /// <summary>
    /// Desc:操作人用户名
    /// Default:
    /// Nullable:False
    /// </summary>
    public string OperatorName { get; set; }

    /// <summary>
    /// Desc:操作类型（ManualAddPoints/ManualDeductPoints/CompensationRetry/CompensationResolve）
    /// Default:
    /// Nullable:False
    /// </summary>
    public string ActionType { get; set; }

    /// <summary>
    /// Desc:目标类型（User/CompensationTask）
    /// Default:
    /// Nullable:False
    /// </summary>
    public string TargetType { get; set; }

    /// <summary>
    /// Desc:目标记录Id
    /// Default:
    /// Nullable:False
    /// </summary>
    public long TargetId { get; set; }

    /// <summary>
    /// Desc:目标名称（用户昵称/任务描述等，便于展示）
    /// Default:
    /// Nullable:True
    /// </summary>
    public string? TargetName { get; set; }

    /// <summary>
    /// Desc:操作详情（JSON格式，记录操作参数和结果）
    /// Default:
    /// Nullable:True
    /// </summary>
    public string? Detail { get; set; }

    /// <summary>
    /// Desc:操作IP地址
    /// Default:
    /// Nullable:True
    /// </summary>
    public string? IpAddress { get; set; }
}
