package com.hdkj.lt.bf.service;

import com.hdkj.lt.bf.entity.vo.FeederSelectVO;
import com.hdkj.lt.bf.entity.vo.PageResult;
import com.hdkj.lt.bf.entity.vo.SeAlarmDetailVO;
import com.hdkj.lt.bf.entity.vo.SeAlarmListVO;

import java.util.List;

/**
 * 异常告警查询 Service
 * <p>
 * 对应前端"异常告警"页面：
 * - 线路重过载列表（Tab1）+ 分页
 * - 电压越限列表（Tab2）+ 分页
 * - 运行异常信息详情
 * - 线路名称下拉选择
 *
 * @author lsl
 * @since 2026-07-23
 */
public interface SeAlarmService {

    /**
     * 分页查询指定日期重过载告警列表
     *
     * @param date  查询日期 yyyy-MM-dd，为空则当天
     * @param orderDir 排序方向 asc/desc，为空则 desc
     */
    PageResult<SeAlarmListVO> queryOverloadAlarmList(String id, Integer type, String feederName,
                                                      String date, String orderDir,
                                                      Integer page, Integer pageSize);

    /**
     * 分页查询指定日期电压越限告警列表
     *
     * @param date  查询日期 yyyy-MM-dd，为空则当天
     * @param orderDir 排序方向 asc/desc，为空则 desc
     */
    PageResult<SeAlarmListVO> queryVoltageAlarmList(String id, Integer type, String feederName,
                                                     String date, String orderDir,
                                                     Integer page, Integer pageSize);

    /**
     * 查询运行异常信息详情
     */
    SeAlarmDetailVO queryAlarmDetail(Long alarmEventId);

    /**
     * 查询线路下拉列表（通过id+type过滤后的全量线路）
     *
     * @param id   节点ID
     * @param type 节点类型 2=区县 3=变电站 4=馈线(type=4时返回自身)
     */
    List<FeederSelectVO> queryFeederList(String id, Integer type);
}