package com.common.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.common.entity.SyslogNonNormalMessage;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 非标日志服务接口
 */
public interface SyslogNonNormalMessageService extends IService<SyslogNonNormalMessage> {

    /**
     * 保存非标日志
     * @param message 日志对象
     * @return 是否成功
     */
    boolean saveMessage(SyslogNonNormalMessage message);

    /**
     * 批量保存非标日志
     * @param messages 日志列表
     * @return 插入数量
     */
    int saveBatchMessages(List<SyslogNonNormalMessage> messages);

    /**
     * 更新非标日志
     * @param message 日志对象
     * @return 是否成功
     */
    boolean updateMessage(SyslogNonNormalMessage message);

    /**
     * 逻辑删除非标日志
     * @param id 日志ID
     * @return 是否成功
     */
    boolean deleteMessage(String id);

    /**
     * 根据ID查询非标日志
     * @param id 日志ID
     * @return 日志对象
     */
    SyslogNonNormalMessage getMessageById(String id);

    /**
     * 根据条件查询非标日志
     * @param deviceId 设备ID
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param ruleResult 规则结果
     * @return 日志列表
     */
    List<SyslogNonNormalMessage> queryMessages(Integer deviceId, LocalDateTime startTime,
                                               LocalDateTime endTime, String ruleResult);


    /**
     * 根据ID和创建时间批量查询非标日志
     */
    List<SyslogNonNormalMessage> getMessagesByIdsAndCreatedAts(
                 List<String> ids,   List<String> createdAts);

    /**
     * 根据ID列表批量查询非标日志
     */
    List<SyslogNonNormalMessage> getMessagesByIds(List<String> ids);

    /**
     * 批量更新del_flag字段
     */
    int updateBatchDelFlag(List<SyslogNonNormalMessage> messages);

    /**
     * 批量更新记录
     */
    int updateBatch(List<SyslogNonNormalMessage> messages);
}