package infra

import (
	"fmt"
)

// NordVPNContainerStop detiene y elimina el container gateway NordVPN.
// Tambien detiene containers que usen su red si se proporcionan.
func NordVPNContainerStop(gateway string, clientNames ...string) error {
	if gateway == "" {
		gateway = "nordvpn"
	}

	// Primero parar los clientes que usan la red del gateway
	for _, name := range clientNames {
		_ = DockerStopContainer(name, 5)
		_ = DockerRemoveContainer(name, true)
	}

	// Parar y eliminar el gateway
	if err := DockerStopContainer(gateway, 10); err != nil {
		return fmt.Errorf("nordvpn container stop: %w", err)
	}
	if err := DockerRemoveContainer(gateway, true); err != nil {
		return fmt.Errorf("nordvpn container remove: %w", err)
	}

	return nil
}
