package com.ho.business.service;

import com.ho.business.entity.DynamicConfig;
import com.ho.business.entity.DynamicConfigTitle;
import com.ho.business.entity.TranslateName;
import com.ho.business.vo.req.dynamicConfig.*;
import com.ho.business.vo.resp.DeviceRespVO;
import com.ho.business.vo.resp.dynamicConfig.CurveConfigQueryResp;
import com.ho.business.vo.resp.dynamicConfig.PointConfigDataResp;
import com.ho.business.vo.resp.dynamicConfig.PointConfigResultResp;

import java.util.List;

public interface DynamicConfigService {

    /**
     * 批量插入数据
     * @param list
     * @return
     */
    int insertList(List<DynamicConfig> list);

    /**
     * 批量更新数据
     * @param list
     * @return
     */
    int updateList(List<DynamicConfig> list);

    /**
     * 根据条件查询配置数据
     * @param vo
     * @return
     */
    List<DynamicConfig> selectByParam(DynamicConfigQuery vo);

    /**
     * 根据id删除配置信息
     * @param ids
     * @return
     */
    int deleteByIds(List<Integer> ids);

    /**
     * 增加曲线
     * @param vo
     * @return
     */
    int addCurve(CurveConfigAdd vo);

    /**
     * 增加曲线
     * @param vo
     * @return
     */
    int addCurveList(List<CurveConfigAdd> vo);

    /**
     * 查询曲线配置
     * @param vo
     * @return
     */
    List<CurveConfigQueryResp> queryCurveConfig(DynamicConfigQuery vo);

    /**
     * 批量插入数据
     * @param list
     * @return
     */
    int addPointList(List<PointConfigAdd> list);


    /**
     * 获取配置点数据
     * @param vo
     * @return
     */
    List<PointConfigResultResp> pointList(PointConfigQuery vo);

    /**
     * 获取配置点数据
     * @param vo
     * @return
     */
    List<PointConfigDataResp> getPointConfigData(PointConfigQuery vo);


    /**
     * 拷贝动态配置
     * @param vo
     * @return
     */
    int syncDynamicConfig(SyncDynamicConfigParam vo);

    /**
     * 查询动态
     * @param vo
     * @return
     */
    List<DeviceRespVO> dynamicConfigDevice(SyncDynamicConfigDeviceQuery vo);


    /**
     * 增加动态标题
     * @param vo
     * @return
     */
    int addDynamicConfigTitle(DynamicConfigTitle vo);

    /**
     * 查询动态配置标题
     * @param vo
     * @return
     */
    List<DynamicConfigTitle> queryDynamicConfigTitle(DynamicConfigTitle vo);

    /**
     * 删除动态标题
     * @param vo
     * @return
     */
    int delDynamicConfigTitle(DynamicConfigTitle vo);

    /**
     * 已知 name 参数是中文
     * @param name 中文名称
     * @return  返回得到中文翻译的结果（翻译结果为：英语、法语、西班牙语、德语、波兰语、阿拉伯语）
     */
    TranslateName getNameLanguage(String name);

    /**
     * 已知 name 参数是中文  根据lang参数 得到翻译的结果
     * @param name  中文名称
     * @param lang  翻译语种（英语、法语、西班牙语、德语、波兰语、阿拉伯语）
     * @return      返回的翻译语音结果
     */
    String getNameByLang(String name,String lang);

}
