#!/bin/bash

# Salir inmediatamente si un comando falla
set -e

# --- Esperar a PostgreSQL si estamos en modo BD remota ---
if [ -n "$DB_HOST" ]; then
    echo "--> Esperando a PostgreSQL en $DB_HOST:${DB_PORT:-5432}..."
    until python -c "
import sys, psycopg2, os
try:
    psycopg2.connect(
        host=os.environ['DB_HOST'],
        port=os.environ.get('DB_PORT', 5432),
        user=os.environ['DB_USER'],
        password=os.environ['DB_PASSWORD'],
        dbname=os.environ['DB_NAME']
    )
    sys.exit(0)
except Exception:
    sys.exit(1)
" 2>/dev/null; do
        echo "   PostgreSQL no disponible, reintentando en 2s..."
        sleep 2
    done
    echo "--> PostgreSQL listo."
fi

echo "--> Ejecutando migraciones..."
python manage.py migrate --noinput

echo "--> Cargando semillas (si existen)..."
python manage.py loaddata semillas 2>/dev/null || echo "   Sin semillas, continuando."

echo "--> Arrancando servidor con Gunicorn..."
exec gunicorn api_config.wsgi:application \
    --bind 0.0.0.0:8000 \
    --workers 2 \
    --timeout 120 \
    --access-logfile - \
    --error-logfile -
