#!/usr/bin/env bash
# Build the VPS upload package for rosematka.com
# Output: deploy/upload/  (player + admin + api)
set -euo pipefail

ROOT="$(cd "$(dirname "$0")/.." && pwd)"
OUT="$ROOT/deploy/upload"
DOMAIN="${MATKA_DOMAIN:-rosematka.com}"
API_URL="${MATKA_API_URL:-https://${DOMAIN}/api/api.php}"

echo "==> Domain : $DOMAIN"
echo "==> API URL: $API_URL"
echo "==> Output : $OUT"

command -v flutter >/dev/null || {
  echo "Flutter not found in PATH"
  exit 1
}

rm -rf "$OUT"
mkdir -p "$OUT/player" "$OUT/admin" "$OUT/api"

cd "$ROOT"

echo "==> Building player ( / )"
flutter build web -t lib/main.dart --release \
  --base-href / \
  --dart-define="MATKA_API_URL=$API_URL"
cp -R build/web/. "$OUT/player/"

echo "==> Building admin ( /admin/ )"
flutter build web -t lib/admin_main.dart --release \
  --base-href /admin/ \
  --dart-define="MATKA_API_URL=$API_URL"
cp -R build/web/. "$OUT/admin/"

echo "==> Copying PHP API ( /api/ )"
rsync -a \
  --exclude 'tests' \
  --exclude 'smoke_test.php' \
  --exclude 'start-admin.sh' \
  --exclude 'start-api.sh' \
  --exclude '.DS_Store' \
  "$ROOT/backend/" "$OUT/api/"

# Keep schema + seed for first VPS setup
cp "$ROOT/deploy/nginx-rosematka.conf" "$OUT/nginx-rosematka.conf"
cp "$ROOT/deploy/UPLOAD.txt" "$OUT/UPLOAD.txt"

# Stamp
{
  echo "domain=$DOMAIN"
  echo "api_url=$API_URL"
  echo "built_at=$(date -u +%Y-%m-%dT%H:%M:%SZ)"
  echo "player=/"
  echo "admin=/admin/"
  echo "api=/api/"
} > "$OUT/BUILD_INFO.txt"

echo
echo "Ready to upload: $OUT"
echo "  player/  → VPS /var/www/matka/player/"
echo "  admin/   → VPS /var/www/matka/admin/"
echo "  api/     → VPS /var/www/matka/api/  (or backend symlink)"
echo
du -sh "$OUT" "$OUT/player" "$OUT/admin" "$OUT/api"
