package infra

import (
	"fmt"
	"os/exec"
	"strings"
)

// DockerComposeDown baja un stack docker-compose desde el archivo dado.
// Si removeVolumes es true elimina también los volumes (-v). Retorna el stdout del comando.
func DockerComposeDown(composeFile string, removeVolumes bool) (string, error) {
	args := []string{"compose", "-f", composeFile, "down"}
	if removeVolumes {
		args = append(args, "-v")
	}

	out, err := exec.Command("docker", args...).CombinedOutput()
	if err != nil {
		return "", fmt.Errorf("docker compose down %s: %s", composeFile, strings.TrimSpace(string(out)))
	}
	return strings.TrimSpace(string(out)), nil
}
