package com.artfess.rescue.cloud.manager;

import com.artfess.base.manager.BaseManager;
import com.artfess.base.model.CommonResult;
import com.artfess.rescue.cloud.dto.CloudApplyDetailSaveDTO;
import com.artfess.rescue.cloud.dto.CloudApplyPortDTO;
import com.artfess.rescue.cloud.model.BizCloudApplyDetail;

import java.util.List;

/**
 * 私有云资源申请明细表 服务类
 *
 * @author 管理员
 * @company 阿特菲斯信息技术有限公司
 * @since 2024-08-07
 */
public interface BizCloudApplyDetailManager extends BaseManager<BizCloudApplyDetail> {

    /**
     * 私有云资源申请明细 批量保存/更新
     *
     * @param cloudApplyDetailList 私有云资源申请明细
     * @return CommonResult<String>
     */
    CommonResult<String> saveList(List<BizCloudApplyDetail> cloudApplyDetailList);

    /**
     * 私有云申请明细及端口映射保存
     *
     * @param dto 私有云申请明细传输DTO
     * @return 执行结果
     */
    CommonResult<String> saveInfo(CloudApplyDetailSaveDTO dto);

    /**
     * 私有云申请明细及端口映射修改
     *
     * @param dto 私有云申请明细传输DTO
     * @return 执行结果
     */
    CommonResult<String> updateInfo(CloudApplyDetailSaveDTO dto);

    /**
     * 获取私有云申请明细及端口映射列表
     *
     * @param privateCloudApplyId 私有云申请ID
     * @return 私有云申请明细及端口映射
     */
    CommonResult<List<CloudApplyDetailSaveDTO>> getListByPrivateCloudApplyId(String privateCloudApplyId);

    /**
     * 获取私有云申请需求明细及端口映射DTO列表
     *
     * @param privateCloudApplyId 私有云申请ID
     * @return 私有云申请明细及端口映射
     */
    List<CloudApplyPortDTO> getCloudApplyPortDTOList(String privateCloudApplyId);

}
