#!/bin/bash
# Uso: deploy.sh <nome-cliente> <porta-local-ou-static>
# Exemplos:
#   deploy.sh chacara-familia-real static     ← projeto estático (já copiado via rsync)
#   deploy.sh cliente-nextjs 3001             ← Next.js rodando na porta 3001

CLIENT=$1
MODE=$2

if [ -z "$CLIENT" ] || [ -z "$MODE" ]; then
    echo "Uso: deploy.sh <nome-cliente> <static|porta>"
    echo "  static  → serve arquivos de /opt/previews/<nome-cliente>/"
    echo "  <porta> → reverse proxy para localhost:<porta>"
    exit 1
fi

CADDYFILE=/etc/caddy/Caddyfile

# Verifica se já existe entrada para esse cliente
if grep -q "$CLIENT" "$CADDYFILE"; then
    echo "[!] Cliente '$CLIENT' já existe no Caddyfile"
    exit 1
fi

if [ "$MODE" = "static" ]; then
    echo "[+] Cliente '$CLIENT' → estático em /opt/previews/$CLIENT/"
    # Nada a fazer no Caddy - file_server browse já serve tudo de /opt/previews/
    echo "[OK] Basta fazer rsync do build para /opt/previews/$CLIENT/"
else
    # Next.js ou outro server — adiciona reverse_proxy
    PORT=$MODE
    echo "[+] Cliente '$CLIENT' → reverse_proxy localhost:$PORT"

    # Insere antes do último } do bloco preview.forgestudio.tech
    sed -i "/preview.forgestudio.tech/,/^}/ {
        /file_server browse/i\
\\thandle_path /$CLIENT/* {\
\\t\\treverse_proxy localhost:$PORT\
\\t}
    }" "$CADDYFILE"

    caddy validate --config "$CADDYFILE" 2>&1 | grep -q 'Valid' && {
        systemctl reload caddy
        echo "[OK] Caddy atualizado — https://preview.forgestudio.tech/$CLIENT/"
    } || {
        echo "[ERRO] Caddyfile inválido, verifique manualmente"
    }
fi
