#!/bin/sh
set -e

# Warmup du cache Symfony au démarrage
php bin/console cache:warmup --env=prod --no-debug 2>&1 || true

# Génère les tiles depuis les données existantes (protection contre redémarrage sans tiles)
php bin/console app:generate-tiles --env=prod --no-debug 2>&1 || true

# Boucle de supervision : relance le worker automatiquement après --time-limit ou crash.
_supervise() {
    name="$1"; shift
    while true; do
        echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) [worker:${name}] starting"
        "$@" 2>&1 || true
        echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) [worker:${name}] stopped — restart in 5s"
        sleep 5
    done
}

_supervise scheduler \
    php bin/console messenger:consume scheduler_main \
    --env=prod --no-debug --memory-limit=64M --time-limit=3600 &

_supervise async \
    php bin/console messenger:consume async \
    --env=prod --no-debug --memory-limit=256M --time-limit=3600 &

exec frankenphp run --config /etc/caddy/Caddyfile "$@"
