#!/usr/bin/env bash
# ============================================================================
#  Hypen Suport - deploy stație (Linux, Debian/Ubuntu)
#  Instalează RustDesk pe serverul Hypen, setează parolă unică permanentă +
#  acces nesupravegheat, și înscrie automat stația în address book.
#
#  Rulează ca root:  sudo bash deploy-statie-linux.sh "Recepție Etaj 2" [parola]
# ============================================================================
set -euo pipefail
ALIAS="${1:?Dă un alias: sudo bash deploy-statie-linux.sh \"Nume Stație\" [parola]}"
PASS="${2:-$(head -c 12 /dev/urandom | base64 | tr -dc 'A-Za-z0-9' | head -c 16)}"
SERVER="rd.hypen.ro"
KEY="Giaghgzlj8NPCEEplK0jUT02IdSJocHQTYIQy1vvcS0="
CONSOLE="https://rd-admin.hypen.ro"
ADMIN_USER="admin"; COLLECTION_ID=1
ADMIN_PASS="${RD_ADMIN_PASS:?Setează parola consolei: sudo RD_ADMIN_PASS='...' bash deploy-statie-linux.sh \"Alias\"}"
VER="1.4.9"

echo "==> Descarc și instalez RustDesk..."
tmp=$(mktemp -d)
arch=$(dpkg --print-architecture)
case "$arch" in amd64) f="rustdesk-${VER}-x86_64.deb";; arm64) f="rustdesk-${VER}-aarch64.deb";; *) echo "arch nesuportat: $arch"; exit 1;; esac
curl -fsSL -o "$tmp/rd.deb" "https://suport.hypen.ro/files/$f"
apt-get install -y "$tmp/rd.deb" >/dev/null 2>&1 || { dpkg -i "$tmp/rd.deb" || apt-get -f install -y; }
rd=$(command -v rustdesk)

echo "==> Configurez server + parolă permanentă + acces nesupravegheat..."
"$rd" --config "host=$SERVER,key=$KEY" >/dev/null 2>&1 || true
sleep 2
"$rd" --password "$PASS" >/dev/null 2>&1
"$rd" --option approve-mode password >/dev/null 2>&1 || true
sleep 2
ID=$("$rd" --get-id | tr -d '[:space:]')
[ -n "$ID" ] || { echo "Nu am putut citi ID-ul"; exit 1; }

echo "==> Înscriu stația în address book..."
TOK=$(curl -fsSL -X POST "$CONSOLE/api/admin/login" -H "Content-Type: application/json" \
  -d "{\"username\":\"$ADMIN_USER\",\"password\":\"$ADMIN_PASS\"}" | python3 -c "import json,sys;print(json.load(sys.stdin)['data']['token'])")
curl -fsSL -X POST "$CONSOLE/api/admin/my/address_book/create" -H "api-token: $TOK" -H "Content-Type: application/json" \
  -d "{\"id\":\"$ID\",\"collection_id\":$COLLECTION_ID,\"hostname\":\"$(hostname)\",\"alias\":\"$ALIAS\",\"password\":\"$PASS\",\"forceAlwaysRelay\":true,\"tags\":[\"statie\"]}" >/dev/null
rm -rf "$tmp"

echo ""
echo "======================================================"
echo "  GATA. Stația e accesibilă nesupravegheat."
echo "  Alias : $ALIAS"
echo "  ID    : $ID"
echo "  Parolă: $PASS   (salvată în address book)"
echo "======================================================"
