package com.uavps.system.service;

import com.uavps.system.domain.UavpsAlgorithmTaskFormation;
import com.uavps.system.domain.UavpsMultiTargetFormation;

import java.util.List;

/**
 * 算法任务和多目标集群关联Service接口
 *
 * @author ruoyi
 * @date 2025-02-18
 */
public interface IUavpsAlgorithmTaskFormationService {
    /**
     * 查询算法任务和多目标集群关联
     *
     * @param algorithmTaskId 算法任务和多目标集群关联主键
     * @return 算法任务和多目标集群关联
     */
    public UavpsAlgorithmTaskFormation selectUavpsAlgorithmTaskFormationByAlgorithmTaskId(Long algorithmTaskId);

    /**
     * 查询算法任务和多目标集群关联列表
     *
     * @param uavpsAlgorithmTaskFormation 算法任务和多目标集群关联
     * @return 算法任务和多目标集群关联集合
     */
    public List<UavpsAlgorithmTaskFormation> selectUavpsAlgorithmTaskFormationList(UavpsAlgorithmTaskFormation uavpsAlgorithmTaskFormation);

    /**
     * 新增算法任务和多目标集群关联
     *
     * @param uavpsAlgorithmTaskFormation 算法任务和多目标集群关联
     * @return 结果
     */
    public int insertUavpsAlgorithmTaskFormation(UavpsAlgorithmTaskFormation uavpsAlgorithmTaskFormation);

    /**
     * 修改算法任务和多目标集群关联
     *
     * @param uavpsAlgorithmTaskFormation 算法任务和多目标集群关联
     * @return 结果
     */
    public int updateUavpsAlgorithmTaskFormation(UavpsAlgorithmTaskFormation uavpsAlgorithmTaskFormation);

    /**
     * 批量删除算法任务和多目标集群关联
     *
     * @param algorithmTaskIds 需要删除的算法任务和多目标集群关联主键集合
     * @return 结果
     */
    public int deleteUavpsAlgorithmTaskFormationByAlgorithmTaskIds(Long[] algorithmTaskIds);

    /**
     * 删除算法任务和多目标集群关联信息
     *
     * @param algorithmTaskId 算法任务和多目标集群关联主键
     * @return 结果
     */
    public int deleteUavpsAlgorithmTaskFormationByAlgorithmTaskId(Long algorithmTaskId);

    public List<Long> selectFormationByTaskId(Long taskId);

    public List<UavpsMultiTargetFormation> selectFormationListByTaskId(Long taskId);

    public String initTaskFormationParams(Long taskId);
}
