package com.securitycontrol.system.service;

import com.securitycontrol.common.core.domain.Result;
import com.securitycontrol.common.core.web.domain.AjaxResult;
import com.securitycontrol.system.api.domain.SysLog;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * @author：cwchen
 * @date：2024-02-28-14:01
 * @version：1.0
 * @description：系统日志-业务层
 */
public interface ISysLogService {
    /**
     * 保存系统日志
     *
     * @param sysLog
     * @return AjaxResult
     * @description
     * @author cwchen
     * @date 2024/2/28 14:33
     */
    AjaxResult saveLogs(SysLog sysLog);

    /**
     * 查询系统日志
     * @param dto
     * @return
     */
    List<SysLog> getSystemLogs(SysLog dto);

    /**
     * 查询日志容量信息
     * @return
     */
    Result<String> getLogsSet();

    /**
     * 审计日志容量配置
     * @param capacity
     * @return
     */
    Result<String> setLogsSet(String capacity);

    /**
     * 查询·日志统计
     * @param dto
     * @return
     */
    Result<Map<String, Object>> getLogStatistics(SysLog dto);

    /**
     *日志容量告警
     * @return
     */
    Result<Map<String, Object>> logWarn( );

    /**
     * 保存日志
     * @param sysLog
     * @param request
     * @return
     */
    void addLogs(SysLog sysLog, HttpServletRequest request);
}
