#!/usr/bin/env bash
set -euo pipefail

ROOT="/var/www/html/favo"
SRC="$(cd "$(dirname "$0")/.." && pwd)"

echo "=== FAVO Unlock Engine V1.1 ==="

mkdir -p "$ROOT/storage/backups"
STAMP=$(date +%Y%m%d_%H%M%S)

cp "$ROOT/app/Controllers/UnlockController.php"    "$ROOT/storage/backups/UnlockController_${STAMP}.php"

cp "$ROOT/app/Services/UnlockService.php"    "$ROOT/storage/backups/UnlockService_${STAMP}.php"

if [ "$SRC/app/Controllers/UnlockController.php" != "$ROOT/app/Controllers/UnlockController.php" ]; then
  install -m 0644 "$SRC/app/Controllers/UnlockController.php" "$ROOT/app/Controllers/UnlockController.php"
fi

python3 - <<'PY'
from pathlib import Path
p = Path("/var/www/html/favo/app/Services/UnlockService.php")
s = p.read_text()
old = 'VALUES (?,?,?,?,"UNLOCKED",?,?,?,?,NOW(),NOW())'
new = 'VALUES (?,?,?,?,"UNLOCKED",?,?,?,NOW(),NOW(),NOW())'
if old in s:
    s = s.replace(old,new,1)
    p.write_text(s)
    print("UnlockService SQL placeholder fixed.")
else:
    print("UnlockService already fixed or SQL differs.")
PY

python3 - <<'PY'
from pathlib import Path
p = Path("/var/www/html/favo/public/index.php")
s = p.read_text()
routes = [
"if($page==='api/v2/reward/unlock'){(new Favo\\Controllers\\UnlockController())->evaluate(); exit;}",
"if($page==='api/v2/reward/unlocks'){(new Favo\\Controllers\\UnlockController())->mine(); exit;}"
]
marker = "if(isset($routes[$page]))"
for r in routes:
    if r not in s:
        s = s.replace(marker,r+"\n"+marker,1)
p.write_text(s)
print("Routes verified.")
PY

php -l "$ROOT/app/Controllers/UnlockController.php"
php -l "$ROOT/app/Services/UnlockService.php"
php -l "$ROOT/public/index.php"

echo
echo "Unlock Engine V1.1 READY"
