package com.zcloud.personnel.positioning.api;

import com.zcloud.personnel.positioning.dto.AlarmRuleAddCmd;
import com.zcloud.personnel.positioning.dto.AlarmRuleCompanyPageQry;
import com.zcloud.personnel.positioning.dto.AlarmRulePageQry;
import com.zcloud.personnel.positioning.dto.AlarmRuleUpdateCmd;
import com.zcloud.personnel.positioning.dto.clientobject.AlarmRuleCO;
import com.zcloud.personnel.positioning.dto.clientobject.AlarmRuleCompanyStatCO;
import com.zcloud.personnel.positioning.dto.clientobject.OptionCO;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;

import java.util.List;

/**
 * web-client
 *
 * @Author fangjiakai
 * @Date 2026-07-07
 */
public interface AlarmRuleServiceI {
    PageResponse<AlarmRuleCompanyStatCO> listCompanyStats(AlarmRuleCompanyPageQry qry);

    List<OptionCO> listCompanyOptions(String keyword);

    PageResponse<AlarmRuleCO> listPage(AlarmRulePageQry qry);

    List<AlarmRuleCO> listAll();

    AlarmRuleCO queryById(Long id);

    SingleResponse<AlarmRuleCO> add(AlarmRuleAddCmd cmd);

    void edit(AlarmRuleUpdateCmd cmd);

    void enable(Long id);

    void disable(Long id);

    void remove(Long id);

    void removeBatch(Long[] ids);
}
