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

source ./scripts/Unix/starter.sh

echo "Verifying all images are present…"
images=$(docker compose config --format json | jq -r '.services[].image // empty')
for image in $images; do
  if ! docker image inspect "$image" > /dev/null 2>&1; then
    echo "Required images not found. Please run install.sh first." >&2
    exit 1
  fi
  echo "  • Found image: $image"
done

echo "Spinning services up…"
docker compose up --no-build --detach --wait
echo "Services are up and healthy!"

echo "Applying migrations…"
docker compose exec app uv run python manage.py migrate --no-input
echo "Migrations applied successfully!"

echo "Collecting static files…"
docker compose exec app uv run python manage.py collectstatic --clear --no-input
echo "Static files collected successfully!"

echo "Setting default caches…"
docker compose exec app uv run python manage.py set_default_caches
echo "Default caches set successfully!"

echo "Cleaning unused Docker data…"
docker system prune -f
echo "Unused Docker data cleaned successfully!"

echo "All done! eVibes is up and running!"
