package cd.casic.module.execute.docker.dataobject.model;

import cn.hutool.core.collection.CollUtil;
import lombok.Data;

import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @description: 新运行的请求类
 * @author: mianbin
 * @date: 2025/5/26 16:30
 * @version: 1.0
 */
@Data
public class RunNewContainer {
    /**
     * 使用的镜像ID
     */
    private String imageId;

    /**
     * 容器名称
     */
    private String containerName;

    /**
     * 环境变量
     */
    private Map<String, String> envGroup;

    /**
     * 端口绑定
     */
    private Map<Long, Long> portBound;

    /**
     * DNS
     */
    private List<String> dns;

    /**
     * 容器别名
     */
    private String alias;

    /**
     * 主机名
     */
    private String hostname;

    /**
     * 网络名
     *
     * @return
     */
    private String networkMode;


    public List<String> findEnvList() {
        // 若 envGroup 为空，返回空列表；否则将 envGroup 转换为包含键值对字符串的列表
        return CollUtil.isEmpty(this.envGroup) ? Collections.emptyList() :
                this.envGroup.entrySet().stream()
                        .map(entry -> String.format("%s=%s", entry.getKey(), entry.getValue()))
                        .collect(Collectors.toList());
    }
}
