#!/bin/bash
# update.sh — Recurring update on the SERVER (after each deploy.sh)
# Author: Dr Hamid MADANI <drmdh@msn.com>
#
#   ssh user@server "cd /var/www/media-studio && ./update.sh"
#
# Skips vhost and cert (handled once by install.sh) — npm install + build + pm2.

set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
cd "${SCRIPT_DIR}"

if [ -f .env.deploy ]; then
  set -a; . ./.env.deploy; set +a
fi
DOMAIN="${DEPLOY_DOMAIN:-media.example.com}"
PORT="${DEPLOY_PORT:-4499}"

CYAN='\033[0;36m'; GREEN='\033[0;32m'; RED='\033[0;31m'; NC='\033[0m'

echo -e "${CYAN}══════════════════════════════════════════════════${NC}"
echo -e "${CYAN}  media-studio — Update (${DOMAIN})                 ${NC}"
echo -e "${CYAN}══════════════════════════════════════════════════${NC}"

echo -e "\n${CYAN}[1/3] npm install (pull latest @mostajs/media)...${NC}"
npm install --legacy-peer-deps 2>&1 | tail -5

echo -e "\n${CYAN}[2/3] npm run build...${NC}"
rm -rf .next
npm run build 2>&1 | tail -5

echo -e "\n${CYAN}[3/3] pm2 restart media-studio...${NC}"
pm2 restart media-studio 2>&1 | tail -3 || pm2 start ecosystem.config.cjs

sleep 3
LOCAL_CODE=$(curl -s -o /dev/null -w '%{http_code}' "http://127.0.0.1:${PORT}/" 2>/dev/null || echo "000")
echo ""
if [ "${LOCAL_CODE}" = "200" ] || [ "${LOCAL_CODE}" = "307" ]; then
  echo -e "${GREEN}══════════════════════════════════════════════════${NC}"
  echo -e "${GREEN}  Update OK — Backend HTTP ${LOCAL_CODE}                       ${NC}"
  echo -e "${GREEN}  Public : https://${DOMAIN}                       ${NC}"
  echo -e "${GREEN}══════════════════════════════════════════════════${NC}"
else
  echo -e "${RED}  ✗ Backend not responding (HTTP ${LOCAL_CODE})${NC}"
  echo -e "${RED}  Logs: pm2 logs media-studio${NC}"
fi
