package cd.casic.module.machine.service;

import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.module.machine.controller.vo.MachineEnvVO;
import cd.casic.module.machine.dal.dataobject.MachineEnvDO;
import jakarta.validation.Valid;

/**
 * 环境变量服务接口
 */

public interface MachineEnvService {
    /**
     * 创建或更新机器的环境变量（一对一关系）
     */
    Long createEnv(@Valid MachineEnvVO machineEnvVO);

    /**
     * 删除机器的环境变量
     */
    void deleteEnv(Long machineEvnId);

    /**
     * 获取机器的环境变量
     *
     * @param machineId 机器ID
     * @return 环境变量DTO
     */
    MachineEnvVO getEnv(Long machineId);

    /**
     * @return 环境变量列表
     */
    PageResult<MachineEnvDO> getEnvPage(@Valid MachineEnvVO machineEnvVO);

    /**
     * 批量删除
     */
    void deleteEnvList(String ids);

    /*
     * 修改环境变量
     */
    void updateEnv(@Valid MachineEnvVO machineEnvVO);
}
