package com.ruoyi.ccdi.project.service;

import com.ruoyi.ccdi.project.domain.dto.ModelParamQueryDTO;
import com.ruoyi.ccdi.project.domain.dto.ModelParamSaveDTO;
import com.ruoyi.ccdi.project.domain.dto.ModelParamAllQueryDTO;
import com.ruoyi.ccdi.project.domain.dto.ModelParamSaveAllDTO;
import com.ruoyi.ccdi.project.domain.vo.ModelListVO;
import com.ruoyi.ccdi.project.domain.vo.ModelParamVO;
import com.ruoyi.ccdi.project.domain.vo.ModelParamAllVO;
import java.util.List;

/**
 * 模型参数Service
 */
public interface ICcdiModelParamService {

    /**
     * 查询模型列表
     *
     * @param projectId 项目ID
     * @return 模型列表
     */
    List<ModelListVO> selectModelList(Long projectId);

    /**
     * 查询模型参数列表
     *
     * @param queryDTO 查询条件
     * @return 参数列表
     */
    List<ModelParamVO> selectParamList(ModelParamQueryDTO queryDTO);

    /**
     * 保存模型参数(只更新阈值)
     *
     * @param saveDTO 保存参数
     */
    void saveParams(ModelParamSaveDTO saveDTO);

    /**
     * 查询所有模型及其参数(按模型分组)
     *
     * @param projectId 项目ID(0表示全局配置)
     * @return 所有模型的参数配置
     */
    ModelParamAllVO selectAllParams(Long projectId);

    /**
     * 批量保存所有模型的参数修改
     *
     * @param saveAllDTO 所有模型的参数修改数据
     */
    void saveAllParams(ModelParamSaveAllDTO saveAllDTO);
}
