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

ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
ENV_FILE="$ROOT_DIR/.env"

if [[ ! -f "$ENV_FILE" ]]; then
  echo "Missing backend .env at $ENV_FILE"
  exit 1
fi

DB_HOST="$(awk -F= '/^DB_HOST=/{print $2}' "$ENV_FILE" | tr -d '\r')"
DB_PORT="$(awk -F= '/^DB_PORT=/{print $2}' "$ENV_FILE" | tr -d '\r')"
DB_USER="$(awk -F= '/^DB_USER=/{print $2}' "$ENV_FILE" | tr -d '\r')"
DB_PASSWORD="$(awk -F= '/^DB_PASSWORD=/{print substr($0,index($0,"=")+1)}' "$ENV_FILE" | tr -d '\r')"
DB_NAME="$(awk -F= '/^DB_NAME=/{print $2}' "$ENV_FILE" | tr -d '\r')"

MIGRATIONS=(
  database/migration_20260505_sync_schema_alignment.sql
  database/migration_20260505_operational_upgrade.sql
  database/migration_20260505_warehouse_execution.sql
  database/migration_20260505_add_beezifi_accounting.sql
  database/migration_20260505_competitiveness_upgrade.sql
  database/migration_20260505_planning_forecast_enhancements.sql
)

cd "$ROOT_DIR"

echo "Applying migrations..."
for migration in "${MIGRATIONS[@]}"; do
  echo " -> $migration"
  mysql -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" < "$migration"
done

echo "Running smoke:preflight"
IOM_BASE_URL="${IOM_BASE_URL:-http://localhost:3001/api}" node scripts/smoke-preflight.js

echo "Running smoke:auth"
IOM_BASE_URL="${IOM_BASE_URL:-http://localhost:3001/api}" node scripts/smoke-authenticated.js

echo "Running smoke:planning"
IOM_BASE_URL="${IOM_BASE_URL:-http://localhost:3001/api}" node scripts/smoke-planning-nonzero.js

echo "Running smoke:sso"
IOM_BASE_URL="${IOM_BASE_URL:-http://localhost:3001/api}" node scripts/smoke-sso-roundtrip.js

echo "ALL_MIGRATIONS_AND_SMOKES_COMPLETED"
