#!/bin/bash

# Asegurar que el script se ejecute desde el directorio del proyecto
cd "$(dirname "$0")"

# Ruta al ejecutable de python en el entorno virtual
PYTHON_VENV="./.venv/bin/python"

# Verificar si el entorno virtual existe
if [ ! -f "$PYTHON_VENV" ]; then
    echo "Error: No se encontró el entorno virtual en ./venv."
    echo "Por favor, asegúrate de que el entorno virtual esté creado y las dependencias instaladas."
    exit 1
fi

echo "--------------------------------------------------"
echo "  INICIALIZACIÓN DE BASE DE DATOS"
echo "--------------------------------------------------"

# 1. Generar migraciones pendientes
echo "[1/5] Generando migraciones..."
$PYTHON_VENV manage.py makemigrations --noinput
if [ $? -ne 0 ]; then
    echo "Error al generar migraciones."
    exit 1
fi
echo "      Ok."

# 2. Ejecutar migraciones (crea el esquema si la base es nueva o lo deja al día)
echo "[2/5] Ejecutando migrate..."
$PYTHON_VENV manage.py migrate
if [ $? -ne 0 ]; then
    echo "Error al ejecutar las migraciones."
    exit 1
fi
echo "      Ok."

# 3. Vaciar todos los datos y resetear los id/secuencias (sin borrar el esquema)
#    Funciona igual en SQLite y PostgreSQL.
echo "[3/5] Vaciamos y reseteamos la base (flush)..."
$PYTHON_VENV manage.py flush --noinput
if [ $? -ne 0 ]; then
    echo "Error al vaciar la base de datos."
    exit 1
fi
echo "      Ok."

# 4. Crear superusuario de forma no interactiva
echo "[4/5] Creando superusuario (admin / admin@123)..."
export DJANGO_SUPERUSER_USERNAME=admin
export DJANGO_SUPERUSER_EMAIL=admin@tienda.com.ar
export DJANGO_SUPERUSER_PASSWORD=admin@123

$PYTHON_VENV manage.py createsuperuser --noinput

if [ $? -ne 0 ]; then
    echo "Error al crear el superusuario."
    exit 1
fi
echo "      Ok."

# 5. Recopilar archivos estáticos
echo "[5/5] Recopilando archivos estáticos (collectstatic)..."
$PYTHON_VENV manage.py collectstatic --noinput
if [ $? -ne 0 ]; then
    echo "Error al recopilar archivos estáticos."
    exit 1
fi
echo "      Ok."

echo "--------------------------------------------------"
echo "¡PROCESO COMPLETADO EXITOSAMENTE!"
echo "Usuario: admin"
echo "Password: admin@123"
echo "--------------------------------------------------"
