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

import com.yfd.platform.modules.algorithm.domain.AlgorithmClass;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yfd.platform.modules.algorithm.domain.AlgorithmParamsRequest;
import com.yfd.platform.modules.algorithm.domain.TreeNode;

import java.util.List;

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


    /**********************************
    * 用途说明: 新增算法分类
    * 参数说明 algorithmClass 算法分类对象
    * 返回值说明: boolean 是否成功
    ***********************************/
    boolean addAlgorithmClass(AlgorithmClass algorithmClass);

    /**********************************
    * 用途说明: 修改算法分类
    * 参数说明 algorithmClass 算法分类对象
    * 返回值说明: boolean 是否成功
    ***********************************/
    boolean updateAlgorithmClass(AlgorithmClass algorithmClass);

    /**********************************
    * 用途说明: 删除算法分类
    * 参数说明 id 算法分类Id
    * 返回值说明: boolean 是否成功
    ***********************************/
    boolean deleteAlgorithmClass(String id);

    /**********************************
    * 用途说明: 保存算法分类和算法参数
    * 参数说明 algorithmParamsRequest
    * 返回值说明: boolean
    ***********************************/
    boolean addAlgorithmClassAndParams(AlgorithmParamsRequest algorithmParamsRequest);

    /***********************************
    * 用途说明: 获取算法分类树
    * 参数说明 algorithmClassName
    * 返回值说明: java.util.List<com.yfd.platform.modules.basedata.domain.TreeNode>
    ***********************************/
    List<TreeNode> getAlgorithmComponentTree(String stationCode,String algorithmClassName);

}
