package com.yfd.platform.modules.algorithm.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yfd.platform.modules.algorithm.domain.AlgorithmParams;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zhengsl
 * @since 2025-05-13
 */
public interface IAlgorithmParamsService extends IService<AlgorithmParams> {

    /**********************************
    * 用途说明: 查询算法参数
    * 参数说明 algorithmId 算法分类Id
    * 参数说明 componentId 部件Id
    * 返回值说明: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
    ***********************************/
    List<Map<String, Object>> getAlgorithmParamsList(String algorithmId,String componentId);

    /**********************************
    * 用途说明: 新增算法参数
    * 参数说明 algorithmParams 算法参数
    * 返回值说明: boolean 操作状态
    ***********************************/
    boolean addAlgorithmParams(AlgorithmParams algorithmParams);

    /**********************************
    * 用途说明: 批量新增算法参数
    * 参数说明 algorithmParamsList 算法参数集合
    * 返回值说明: boolean 操作状态
    ***********************************/
    boolean batchAddAlgorithmParams(List<AlgorithmParams> algorithmParamsList);

    /**********************************
    * 用途说明: 批量修改算法参数
    * 参数说明 algorithmParamsList 算法参数集合
    * 返回值说明: boolean 操作状态
    ***********************************/
    boolean batchUpdateAlgorithmParams(List<AlgorithmParams> algorithmParamsList);

    /**********************************
    * 用途说明: 删除算法参数
    * 参数说明 id 参数id
    * 返回值说明: boolean
    ***********************************/
    boolean deleteAlgorithmParams(String id);

    /**********************************
    * 用途说明:
    * 参数说明 algorithmId 算法分类Id
    * 参数说明 componentId 部件Id
    * 返回值说明: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
    ***********************************/
    List<Map<String, Object>> getAlgorithmParamsNameList(String algorithmId,String componentId);

    /**********************************
    * 用途说明:
    * 参数说明 id 算法分类Id
    * 参数说明 componentId 部件Id
    * 返回值说明: com.alibaba.fastjson.JSONObject
    ***********************************/
    JSONObject callAlgorithmAnalyse(String id, String componentId);

}
