package com.pwt.web.service;

import java.util.Collection;
import java.util.List;

import com.pwt.netty.message2.Alarm;
import com.pwt.web.domain.DeviceType;
import com.pwt.web.domain.PwtAlarmRecord;
import com.pwt.web.domain.PwtAlarmRecordQueryParam;
import com.pwt.web.domain.PwtAlarmRecordVo;

/**
 * 告警记录Service接口
 * 
 * @author linyun
 * @date 2022-11-17
 */
public interface IPwtAlarmRecordService 
{
    /**
     * 查询告警记录
     * 
     * @param recordId 告警记录ID
     * @return 告警记录
     */
    public PwtAlarmRecord selectPwtAlarmRecordById(Long recordId);

    /**
     * 查询告警记录列表
     *
     * @return 告警记录集合
     */
    public List<PwtAlarmRecordVo> selectPwtAlarmRecordList(PwtAlarmRecordQueryParam param);

    /**
     * 新增告警记录
     * 
     * @param pwtAlarmRecord 告警记录
     * @return 结果
     */
    public int insertPwtAlarmRecord(PwtAlarmRecord pwtAlarmRecord);

    /**
     * 新增告警记录
     *
     * @return 结果
     */
    public int insertPwtAlarmRecords(Collection<Alarm> alarms);

    /**
     * 修改告警记录
     * 
     * @param pwtAlarmRecord 告警记录
     * @return 结果
     */
    public int updatePwtAlarmRecord(PwtAlarmRecord pwtAlarmRecord);

    /**
     * 批量删除告警记录
     * 
     * @param recordIds 需要删除的告警记录ID
     * @return 结果
     */
    public int deletePwtAlarmRecordByIds(Long[] recordIds);

    /**
     * 删除告警记录信息
     * 
     * @param recordId 告警记录ID
     * @return 结果
     */
    public int deletePwtAlarmRecordById(Long recordId);

    /**
     * 获取来源设备字典
     * @return
     */
    public List<DeviceType> getSourceDeviceDict();
}
