#!/usr/bin/env bash
# deploy/rollback.sh
# Roll back to the previous release by renaming directories.
# A previous release folder must exist for rollback to work.
#
# Convention:
#   /home/dulcfokx/ytwatch-portal        ← current release (live)
#   /home/dulcfokx/ytwatch-portal.prev   ← previous release (backup)
#
# Usage:
#   bash deploy/rollback.sh

set -e

CURRENT="/home/dulcfokx/ytwatch-portal"
PREV="${CURRENT}.prev"
ROLLBACK="${CURRENT}.rollback-$(date +%Y%m%d-%H%M%S)"

if [ ! -d "$PREV" ]; then
  echo "ERROR: No previous release found at ${PREV}"
  echo "       Cannot roll back."
  exit 1
fi

echo "==> Stopping current portal..."
pm2 stop ytwatch || true

echo "==> Moving current release to rollback backup: ${ROLLBACK}"
mv "$CURRENT" "$ROLLBACK"

echo "==> Restoring previous release..."
mv "$PREV" "$CURRENT"

echo "==> Starting restored portal..."
pm2 start deploy/ecosystem.config.js

echo ""
echo "==> Rollback complete."
echo "    Current live release: ${CURRENT}  (was: ${PREV})"
echo "    Failed release saved: ${ROLLBACK}"
echo ""
echo "    Run 'bash deploy/healthcheck.sh' to verify."
