package com.tuoheng.admin.service.accident;

import com.tuoheng.admin.entity.Accident;
import com.tuoheng.admin.query.AccidentQuery;
import com.tuoheng.admin.request.accident.*;
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 request 事故分页列表查询实体
     * @return 巡检任务集合
     */
    JsonResult getAccidentCardPageList(QueryAccidentCardPageListRequest request);

    /**
     * 查询事故列表
     *
     * @param request 事故列表查询实体
     * @return 巡检任务集合
     */
    JsonResult getAccidentCardList(QueryAccidentCardListRequest request);

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

    /**
     * 应急列表分页
     *
     * @param query
     * @return
     */
    JsonResult index(AccidentQuery query);

    /**
     * 事故详情
     *
     * @param id
     * @return
     */
    JsonResult accidentDetails(String id);

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

    /**
     * 事故告警提示
     *
     * @param accidentId
     * @return
     */
    JsonResult getTips(String accidentId);

    /**
     * 事故时间轴
     *
     * @param accidentId
     * @return
     */
    JsonResult getTimeAxis(String accidentId);

    /**
     * 事故核实
     *
     * @param request
     * @return
     */
    JsonResult verify(AccidentVerifyRequest request);

    /**
     * 事故核实完成
     *
     * @param request
     * @return
     */
    JsonResult verifyCompleted(AccidentVerifyCompletedRequest request);

    /**
     * 事故上报
     *
     * @param request
     * @return
     */
    JsonResult report(ReportAccidentRequest request);

    /**
     * 无事故
     *
     * @param request
     * @return
     */
    JsonResult noAccident(ReportNoAccidentRequest request);

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

}
