package com.zcloud.accident.domain.gateway;

import com.zcloud.accident.domain.model.AccidentE;
import com.zcloud.accident.domain.model.AccidentCorpCountStat;
import com.zcloud.accident.domain.model.AccidentCountStat;

import java.util.List;

/**
* web-domain
* @Author fangjiakai
* @Date 2025-10-29 14:28:40
*/
public interface AccidentGateway {

    /**
    * 新增
    */
    Boolean add(AccidentE accidentE) ;

    /**
    * 修改
    */
    Boolean update(AccidentE accidentE);

    /**
    * 删除
    */
    Boolean deletedAccidentById(Long id);
    Boolean deletedAccidentByIds(Long[] id);

    /**
     * 按公司统计事件和事故数量
     *
     * @param corpinfoIds 公司ID列表
     * @return 统计结果列表
     */
    List<AccidentCorpCountStat> countByCorpinfo(List<String> corpinfoIds);

    /**
     * 按照corpinfoId和incidentType统计个数
     *
     * @param corpinfoIds    公司ID列表
     * @param eqAccidentType
     * @return 统计结果列表，包含corpinfoId、incidentType和count字段
     */
    List<AccidentCountStat> countByCorpinfoIdAndIncidentType(List<String> corpinfoIds, Integer eqAccidentType);
}

