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

cd /app/company_site

wait_for_database() {
  if [[ -z "${DATABASE_URL:-}" && -z "${DB_HOST:-}" ]]; then
    return 0
  fi

  echo "Waiting for database..."
  for _ in $(seq 1 30); do
    if uv run python - <<'PY'
import os
import sys

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "company_site.settings")

import django
from django.db import connections
from django.db.utils import OperationalError

django.setup()

try:
    connections["default"].ensure_connection()
except OperationalError:
    sys.exit(1)
PY
    then
      echo "Database is ready."
      return 0
    fi
    sleep 2
  done

  echo "Database did not become ready in time." >&2
  exit 1
}

wait_for_database

uv run python manage.py migrate --noinput
uv run python manage.py collectstatic --noinput

exec uv run gunicorn company_site.wsgi:application \
  --bind "${GUNICORN_BIND:-0.0.0.0:8000}" \
  --workers "${GUNICORN_WORKERS:-2}"
