package com.aegis.emergency.event.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.aegis.emergency.event.domain.Event;

/**
 * 事件Service接口
 * 
 * @author aegis
 */
public interface IEventService extends IService<Event> {
    
    /**
     * 根据条件查询事件列表
     * 
     * @param condition 事件查询条件
     * @return 事件集合
     */
    List<Event> listByCondition(Event condition);
    
    /**
     * 根据事件编号查询事件
     * 
     * @param eventNo 事件编号
     * @return 事件信息
     */
    Event getByEventNo(String eventNo);
    
    /**
     * 开始处理事件（状态从pending变为processing）
     * 
     * @param id 事件ID
     * @return 是否成功
     */
    boolean startProcessing(Long id);
    
    /**
     * 完成事件处理（状态从processing变为completed）
     * 
     * @param id 事件ID
     * @return 是否成功
     */
    boolean completeEvent(Long id);
    
    /**
     * 归档事件（状态从completed变为archived）
     * 
     * @param id 事件ID
     * @return 是否成功
     */
    boolean archiveEvent(Long id);

    /**
     * 上报事件
     * 
     * @param id 事件ID
     * @param reportContent 报告内容
     * @return 是否成功
     */
    boolean reportEvent(Long id, String reportContent);

    /**
     * 续报事件
     * 
     * @param id 事件ID
     * @param reportContent 报告内容
     * @return 是否成功
     */
    boolean followUpReport(Long id, String reportContent);

    /**
     * 标记或取消事件重点
     *
     * @param id 事件ID
     * @param important 是否标记为重点
     * @return 是否成功
     */
    boolean markImportant(Long id, boolean important);
}