#!/bin/bash
# One-shot scheduled store ownership migration: ou20510 -> ou21302
# Scheduled via `at` for 2026-06-03 03:00 UTC (11:00 PM EDT 2026-06-02), after store close.
# Irreversible: renames kiosk_ou20510 -> kiosk_ou21302 and renumbers all references.

LOG="/home/bkweb/logs/migrate-ou20510-ou21302-$(date -u +%Y%m%dT%H%M%SZ).log"
exec >> "$LOG" 2>&1

echo "=================================================================="
echo "Scheduled migrate-store ou20510 -> ou21302"
echo "Started: $(date -u) UTC  /  $(TZ=America/New_York date) ET"
echo "=================================================================="

cd /home/bkweb || { echo "FATAL: cd /home/bkweb failed"; exit 1; }

echo
echo "--- Pre-flight guard: target ou21302 must NOT already exist ---"
EXISTS=$(php userfrosting/scripts/dbq.php kiosk_buykiosk \
  "SELECT SCHEMA_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME='kiosk_ou21302'" 2>/dev/null \
  | grep -c SCHEMA_NAME)
if [ "$EXISTS" -ne 0 ]; then
  echo "ABORT: kiosk_ou21302 already exists — refusing to migrate. Investigate manually."
  exit 1
fi
echo "OK: target free."

echo
echo "--- Executing migration (--execute) ---"
php userfrosting/conductor migrate-store ou20510 ou21302 --execute
RC=$?
echo "migrate-store exit code: $RC"

echo
echo "--- Verification ---"
echo "[stores]"
php userfrosting/scripts/dbq.php kiosk_buykiosk "SELECT typeNum, storeNum, dbName, active FROM stores WHERE typeNum IN ('ou20510','ou21302') ORDER BY typeNum"
echo "[databases]"
php userfrosting/scripts/dbq.php kiosk_buykiosk "SELECT SCHEMA_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME IN ('kiosk_ou20510','kiosk_ou21302')"
echo "[store user]"
php userfrosting/scripts/dbq.php kiosk_users "SELECT id, user_name, email FROM uf_user WHERE user_name='ou21302'"
echo "[group]"
php userfrosting/scripts/dbq.php kiosk_users "SELECT name, landing_page FROM uf_group WHERE name='ou21302'"
echo "[store assignments count]"
php userfrosting/scripts/dbq.php kiosk_users "SELECT COUNT(*) AS assignments FROM userStoreAssignments WHERE typeNum='ou21302'"
echo "[data spot-check]"
php userfrosting/scripts/dbq.php kiosk_ou21302 "SELECT (SELECT COUNT(*) FROM buyQueue) AS buyQueue, (SELECT COUNT(*) FROM customers) AS customers"

echo
echo "Finished: $(date -u) UTC  /  $(TZ=America/New_York date) ET"
echo "Log: $LOG"
