package com.tuoheng.admin.service.accident;

import com.tuoheng.admin.entity.Accident;
import com.tuoheng.admin.request.accident.*;
import com.tuoheng.admin.query.AccidentQuery;
import com.tuoheng.common.core.common.IBaseService;
import com.tuoheng.common.core.utils.JsonResult;

/**
 * @Author ChengWang
 * @Date 2022/11/17
 */
public interface IAccidentService extends IBaseService<Accident> {

    /**
     * 查询应急事故记录
     *
     * @param query
     * @return
     */
    JsonResult index(AccidentQuery query);
    /**
     * 查询应急事故列表
     *
     * @param request
     * @return
     */
    JsonResult getAccidentCardList(QueryAccidentListRequest request);

    /**
     * 查询应急事故信息
     *
     * @param id 事故Id
     * @return
     */
    JsonResult getAccidentInfo(String id);

    /**
     * 添加应急事故信息
     *
     * @param request
     * @return
     */
    JsonResult create(AddAccidentRequest request);

    /**
     * 前往
     *
     * @param request
     * @return
     */
    JsonResult forward(AccidentForwardRequest request);


    /**
     * 继续巡检
     *
     * @param request
     * @return
     */
    JsonResult continueToInspect(ContinueToInspectRequest request);

    /**
     * 应急事故记录
     *
     * @param request
     * @return
     */
    JsonResult record(AccidentRecordRequest request);

    /**
     * 查询应急事故记录详情
     *
     * @param accidentId 事故id
     * @return
     */
    JsonResult getInfoByAccident(String accidentId);

    /**
     * 告警弹窗通知下发
     * @return
     */
    JsonResult notice();

    /**
     * 应急事故处理完成
     * @param request
     * @return
     */
    JsonResult handle(AccidentHandleRequest request);

    /**
     * 查询应急任务状态 页面滑动展示
     * @param request
     * @return
     */
    JsonResult getAccList(QueryEmergencyListRequest request);

    /**
     * 忽略
     *
     * @param id
     * @return
     */
    JsonResult ignore(String id);

    /**
     * 修改任务状态为完成
     * @param id
     * @return
     */
    JsonResult updateStatus(String id);
}
