package de.ozgcloud.xta.client;

import jakarta.validation.constraints.NotNull;

import org.testcontainers.containers.GenericContainer;
import org.testcontainers.utility.DockerImageName;

public class XtaTestServerContainer extends GenericContainer<XtaTestServerContainer> {

	private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("docker.ozg-sh.de/xta-test-server");
	private static final String DEFAULT_TAG = "1.9.0-MR-5-81b37427";
	public static final int PORT = 8443;

	public XtaTestServerContainer() {
		this(DEFAULT_IMAGE_NAME.withTag(DEFAULT_TAG));
	}

	public XtaTestServerContainer(@NotNull DockerImageName dockerImageName) {
		super(dockerImageName);
		addExposedPort(PORT);
	}

	public String getBaseUrl() {
		return "https://%s:%d/MB_XTA-WS/XTA210".formatted(getHost(), getMappedPort(PORT));
	}

	public String getMsgBoxPortUrl() {
		return getBaseUrl() + "msgBoxPort.svc";
	}

	public String getManagementPortUrl() {
		return getBaseUrl() + "managementPort.svc";
	}

	public String getSendPortUrl() {
		return getBaseUrl() + "sendPort.svc";
	}

}