#!/bin/bash

echo "=== Próximas portas disponíveis para novo cliente DCM4CHEE ==="
echo ""

next_port() {
  local pattern=$1
  local default=$2
  docker ps --format "{{.Ports}}" \
    | grep -oP "0\.0\.0\.0:\K[0-9]+" \
    | sort -n \
    | awk -v base="$default" '
      BEGIN { last = base - 1 }
      { if ($1 > last+1 && last >= base) { exit } last = $1 }
      END { print last + 1 }
    '
}

HTTP=$(next_port "8080" 8888)
HTTPS=$(next_port "8443" 8444)
DICOM=$(next_port "2575" 2575)
DICOM_TLS=$(next_port "12575" 12575)
ADMIN_HTTP=$(next_port "9990" 9990)
ADMIN_HTTPS=$(next_port "9993" 9993)
LDAP=$(next_port "389" 389)
PGSQL=$(next_port "5432" 5433)
OHIF=$(next_port "4443" 3004)

echo "  HTTP          : $HTTP"
echo "  HTTPS         : $HTTPS"
echo "  DICOM         : $DICOM"
echo "  DICOM-TLS     : $DICOM_TLS"
echo "  Admin HTTP    : $ADMIN_HTTP"
echo "  Admin HTTPS   : $ADMIN_HTTPS"
echo "  LDAP          : $LDAP"
echo "  PostgreSQL    : $PGSQL"
echo "  OHIF Viewer   : $OHIF"
echo ""
