package com.njcn.gather.freqConverter.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.gather.freqConverter.pojo.po.FreqConverterStatus;
import com.njcn.gather.freqConverter.pojo.vo.TolerantPointVO;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author caozehui
 * @data 2026-04-07
 */
public interface IFreqConverterService extends IService<FreqConverterStatus> {


    /**
     * 保存变频器状态数据
     *
     * @param suffix 表后缀
     * @param status 变频器状态数据
     * @return 是否保存成功
     */
    boolean saveFreqConverterStatus(Integer suffix, FreqConverterStatus status);


    /**
     * 查询指定变频器的状态历史
     *
     * @param converterId 变频器ID
     * @return 状态数据列表
     */
    List<FreqConverterStatus> listStatusData(String converterId);

    /**
     * 清空所有数据
     *
     * @param converterId 变频器ID
     * @return
     */
    void clearAllData(Integer converterId);

    /**
     * 根据设备暂降数据判断变频器是否耐受
     *
     * @param converterId 变频器Id
     * @return 是否耐受
     */
    List<TolerantPointVO> getDipPoints(String converterId);

    List<FreqConverterStatus> getDipDurationStatusData(Integer suffix, LocalDateTime startTime, LocalDateTime endTime);

    FreqConverterStatus getLastStatusData(Integer suffix, LocalDateTime startTime);

    /**
     * 获取变频器特性曲线点
     *
     * @param converterId 变频器ID
     * @return
     */
    List<TolerantPointVO> getFeaturesScurvePoints(String converterId);
}
