#!/bin/sh
# Immagine php:8.4-fpm-alpine: niente bash, solo /bin/sh (busybox ash).
# set -eu basta (nessuna pipe nello script → pipefail non serve e non è POSIX).
set -eu

echo "Waiting for database connection..."

# Riprova la connessione finché MySQL non risponde (max ~60s)
ATTEMPTS=0
until php artisan db:show >/dev/null 2>&1; do
    ATTEMPTS=$((ATTEMPTS + 1))
    if [ "$ATTEMPTS" -ge 30 ]; then
        echo "MySQL not reachable after 60s, exiting." >&2
        exit 1
    fi
    sleep 2
done

echo "MySQL ready. Executing pending migrations (idempotent)..."

# --force: niente prompt interattivo
# migrate normale: applica SOLO le migration non ancora eseguite, non tocca i dati esistenti
php artisan migrate --force

# Avvia il processo principale passato come CMD (php-fpm, artisan serve, ecc.)
echo "Starting application..."
exec "$@"