#!/bin/bash
# PM-WANI XML v1 — Deploy Phase 1-7 to server
# Run from: c:/xampp/htdocs/Android_App/pmwani_mobile_app_backend
# Usage: bash deploy-wani-v1.sh

set -e

SSH_USER="immunity"
SSH_HOST="147.93.30.127"
SSH_PORT="21212"
REMOTE_DIR="/var/www/mobile_app_backend"
STAGING="/tmp/wani_deploy"

SSH_CMD="ssh -p $SSH_PORT $SSH_USER@$SSH_HOST"
SCP_CMD="scp -P $SSH_PORT"

echo "=== Step 1/5: Creating staging dir on server ==="
$SSH_CMD "mkdir -p $STAGING/app/Support $STAGING/app/Http/Controllers/Wani $STAGING/app/Http/Middleware $STAGING/app/Models $STAGING/database/migrations $STAGING/bootstrap $STAGING/routes"

echo ""
echo "=== Step 2/5: Uploading files to staging ==="
$SCP_CMD app/Support/XmlResponder.php $SSH_USER@$SSH_HOST:$STAGING/app/Support/
$SCP_CMD app/Http/Middleware/ParseXmlRequest.php $SSH_USER@$SSH_HOST:$STAGING/app/Http/Middleware/
$SCP_CMD app/Http/Controllers/Wani/RegistryController.php $SSH_USER@$SSH_HOST:$STAGING/app/Http/Controllers/Wani/
$SCP_CMD app/Http/Controllers/Wani/HotspotController.php $SSH_USER@$SSH_HOST:$STAGING/app/Http/Controllers/Wani/
$SCP_CMD app/Http/Controllers/Wani/AuthController.php $SSH_USER@$SSH_HOST:$STAGING/app/Http/Controllers/Wani/
$SCP_CMD app/Http/Controllers/Wani/SessionController.php $SSH_USER@$SSH_HOST:$STAGING/app/Http/Controllers/Wani/
$SCP_CMD app/Models/WaniToken.php $SSH_USER@$SSH_HOST:$STAGING/app/Models/
$SCP_CMD app/Models/WifiSession.php $SSH_USER@$SSH_HOST:$STAGING/app/Models/
$SCP_CMD database/migrations/2026_04_21_120000_create_wani_tokens_table.php $SSH_USER@$SSH_HOST:$STAGING/database/migrations/
$SCP_CMD bootstrap/app.php $SSH_USER@$SSH_HOST:$STAGING/bootstrap/
$SCP_CMD routes/api.php $SSH_USER@$SSH_HOST:$STAGING/routes/

echo ""
echo "=== Step 3/5: Moving files to /var/www + setting permissions (needs sudo) ==="
$SSH_CMD "sudo mkdir -p $REMOTE_DIR/app/Support $REMOTE_DIR/app/Http/Controllers/Wani && \
  sudo cp $STAGING/app/Support/XmlResponder.php $REMOTE_DIR/app/Support/ && \
  sudo cp $STAGING/app/Http/Middleware/ParseXmlRequest.php $REMOTE_DIR/app/Http/Middleware/ && \
  sudo cp $STAGING/app/Http/Controllers/Wani/RegistryController.php $REMOTE_DIR/app/Http/Controllers/Wani/ && \
  sudo cp $STAGING/app/Http/Controllers/Wani/HotspotController.php $REMOTE_DIR/app/Http/Controllers/Wani/ && \
  sudo cp $STAGING/app/Http/Controllers/Wani/AuthController.php $REMOTE_DIR/app/Http/Controllers/Wani/ && \
  sudo cp $STAGING/app/Http/Controllers/Wani/SessionController.php $REMOTE_DIR/app/Http/Controllers/Wani/ && \
  sudo cp $STAGING/app/Models/WaniToken.php $REMOTE_DIR/app/Models/ && \
  sudo cp $STAGING/app/Models/WifiSession.php $REMOTE_DIR/app/Models/ && \
  sudo cp $STAGING/database/migrations/2026_04_21_120000_create_wani_tokens_table.php $REMOTE_DIR/database/migrations/ && \
  sudo cp $STAGING/bootstrap/app.php $REMOTE_DIR/bootstrap/ && \
  sudo cp $STAGING/routes/api.php $REMOTE_DIR/routes/ && \
  sudo chown -R www-data:www-data $REMOTE_DIR/app/Support $REMOTE_DIR/app/Http/Controllers/Wani $REMOTE_DIR/app/Http/Middleware/ParseXmlRequest.php $REMOTE_DIR/app/Models/WaniToken.php $REMOTE_DIR/app/Models/WifiSession.php $REMOTE_DIR/database/migrations/2026_04_21_120000_create_wani_tokens_table.php $REMOTE_DIR/bootstrap/app.php $REMOTE_DIR/routes/api.php"

echo ""
echo "=== Step 4/5: Running migration + clearing caches ==="
$SSH_CMD "cd $REMOTE_DIR && sudo php artisan migrate --force && sudo php artisan config:clear && sudo php artisan route:clear && sudo php artisan cache:clear"

echo ""
echo "=== Step 5/5: Cleanup staging ==="
$SSH_CMD "rm -rf $STAGING"

echo ""
echo "=== Testing deployed endpoints ==="
echo ""
echo "--- Ping ---"
curl -s https://flutter.pmwani.net/api/wani/v1/ping
echo ""
echo ""
echo "--- PDOA List (preview) ---"
curl -s https://flutter.pmwani.net/api/wani/v1/registry/pdoa-list | cut -c 1-500
echo ""
echo ""
echo "=== DONE ==="
