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

ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
BACKEND_DIR="$ROOT_DIR/backend"
FRONTEND_DIR="$ROOT_DIR/frontend"
LOG_FILE="$BACKEND_DIR/storage/logs/clinic-startup.log"

mkdir -p "$BACKEND_DIR/storage/logs"

{
  echo "[$(date)] Online Clinic startup"

  command -v php >/dev/null 2>&1 || { echo "PHP is required."; exit 1; }
  command -v composer >/dev/null 2>&1 || { echo "Composer is required."; exit 1; }
  command -v npm >/dev/null 2>&1 || { echo "npm is required."; exit 1; }

  cd "$BACKEND_DIR"
  echo "==> Updating backend dependencies"
  composer update --no-interaction --prefer-dist

  cd "$FRONTEND_DIR"
  echo "==> Updating frontend dependencies"
  npm update

  echo "==> Building frontend"
  npm run build

  cd "$ROOT_DIR"
  echo "==> Starting Laravel API"
  bash "$ROOT_DIR/scripts/start-api.sh" || true

  echo "==> Starting Vite dev server"
  bash "$ROOT_DIR/scripts/start-dev.sh" || true

  echo "[$(date)] Startup complete"
} >>"$LOG_FILE" 2>&1
