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

## limpa e recria as pastas
rm -rf storage/api-docs public/docs
mkdir -p storage/api-docs public/docs

# gera e lista o que veio para storage/api-docs
php artisan l5-swagger:generate --ansi

# copia **qualquer** JSON que existir ali para public/docs
cp storage/api-docs/*.json public/docs/

# Se não existir vendor/ e /node,
if [ ! -f vendor/autoload.php ]; then
    echo "[entrypoint] Instalando dependências PHP..."
    composer install --no-interaction --prefer-dist --optimize-autoloader --no-scripts
    composer run-script post-autoload-dump
fi

if [ ! -d node_modules ]; then
    echo "[entrypoint] Instalando dependências JS…"
    npm install --ignore-scripts
    npm run build
fi

# garante pasta de views compiladas para evitar erro no view:clear
mkdir -p storage/framework/views

# Corrige permissões dos diretórios
chown -R www-data:www-data storage public bootstrap/cache
chmod -R 755 storage public bootstrap/cache

## Executa limpeza de caches
php artisan config:cache
php artisan cache:clear
php artisan route:clear
php artisan view:clear

# inicia o PHP‑FPM em background
php-fpm &

# inicia o Nginx em primeiro plano
nginx -g 'daemon off;'

