using HoneyBox.Admin.Models.Common;
using HoneyBox.Admin.Models.OperationLog;

namespace HoneyBox.Admin.Services;

/// <summary>
/// 操作日志服务接口
/// </summary>
public interface IOperationLogService
{
    /// <summary>
    /// 记录操作日志
    /// </summary>
    /// <param name="request">日志请求</param>
    Task LogAsync(OperationLogRequest request);

    /// <summary>
    /// 获取操作日志分页列表
    /// </summary>
    /// <param name="request">查询请求</param>
    /// <returns>分页结果</returns>
    Task<PagedResult<OperationLogDto>> GetListAsync(OperationLogQueryRequest request);

    /// <summary>
    /// 根据ID获取日志详情
    /// </summary>
    /// <param name="id">日志ID</param>
    /// <returns>日志详情</returns>
    Task<OperationLogDto> GetByIdAsync(long id);
}
