#!/bin/bash
set -e

echo "🚀 Iniciando Container v21 (Smart Seed + Key Fix)..."

# 1. PERMISSÕES
mkdir -p storage/framework/sessions
mkdir -p storage/framework/views
mkdir -p storage/framework/cache
mkdir -p bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
chmod -R 775 storage

# 2. AGUARDAR BANCO
DB_HOST=${DB_HOST:-mysql}
DB_PORT=${DB_PORT:-3306}

echo "⏳ Aguardando Banco ($DB_HOST:$DB_PORT)..."
while ! nc -z $DB_HOST $DB_PORT; do
  echo "zzZ... Banco indisponível. Tentando em 3s..."
  sleep 3
done
echo "✅ Banco OK!"

# 3. PREPARAR .ENV E KEY
if [ ! -f .env ]; then
    echo "⚠️ .env não encontrado. Criando a partir do exemplo..."
    cp .env.example .env
    echo "🔑 Gerando APP_KEY pela primeira vez..."
    php artisan key:generate --force
fi

# Verificação de Segurança da Key
if grep -q "APP_KEY=$" .env || grep -q "APP_KEY=\s*$" .env; then
    echo "⚠️ APP_KEY encontrada vazia! Gerando nova chave..."
    php artisan key:generate --force
fi

# 4. CONFIGURAÇÃO DINÂMICA
echo "🇧🇷 Aplicando Configurações..."

# URL
if [ ! -z "$APP_URL" ]; then
    sed -i '/APP_URL=/d' .env
    echo "APP_URL=$APP_URL" >> .env
fi

# Locale e Timezone
sed -i 's/APP_LOCALE=en/APP_LOCALE=pt_BR/g' .env
sed -i 's/APP_CURRENCY=USD/APP_CURRENCY=BRL/g' .env
sed -i 's/APP_TIMEZONE=UTC/APP_TIMEZONE=America\/Sao_Paulo/g' .env
sed -i 's/APP_TIMEZONE=Asia\/Kolkata/APP_TIMEZONE=America\/Sao_Paulo/g' .env

# Infra
sed -i 's/DB_HOST=127.0.0.1/DB_HOST=mysql/g' .env
sed -i 's/REDIS_HOST=127.0.0.1/REDIS_HOST=redis/g' .env
sed -i 's/MEMCACHED_HOST=127.0.0.1/MEMCACHED_HOST=memcached/g' .env

# Segurança Session
sed -i '/SESSION_SECURE_COOKIE/d' .env
sed -i '/SESSION_SAME_SITE/d' .env

if [ "$APP_ENV" = "local" ]; then
    echo "SESSION_SECURE_COOKIE=false" >> .env
else
    echo "SESSION_SECURE_COOKIE=true" >> .env
fi

echo "SESSION_SAME_SITE=lax" >> .env
echo "SESSION_COOKIE=growup_session" >> .env
echo "SESSION_DOMAIN=" >> .env

# 5. LIMPEZA DE CACHE
echo "🔥 Limpando caches..."
rm -f bootstrap/cache/config.php
rm -f bootstrap/cache/packages.php
rm -f bootstrap/cache/services.php
php artisan optimize:clear

# 6. BANCO E SEED INTELIGENTE (A MUDANÇA ESTÁ AQUI)
echo "📦 Verificando Banco de Dados..."
php artisan migrate --force

echo "🧐 Verificando existência de usuários..."
# Executa um script PHP rápido para contar usuários na tabela real
USER_COUNT=$(php -r "require __DIR__ . '/vendor/autoload.php'; \$app = require_once __DIR__ . '/bootstrap/app.php'; \$kernel = \$app->make(Illuminate\Contracts\Console\Kernel::class); \$kernel->bootstrap(); try { echo \Illuminate\Support\Facades\DB::table('users')->count(); } catch (\Exception \$e) { echo 0; }")

echo "📊 Usuários encontrados: $USER_COUNT"

if [ "$USER_COUNT" -eq "0" ]; then
    echo "🌱 Tabela de usuários vazia. Rodando SEED OBRIGATÓRIO..."
    php artisan db:seed --force
    echo "✅ Seed concluído! Usuário padrão criado."
else
    echo "⏩ Já existem usuários no banco ($USER_COUNT). Pulando Seed para evitar duplicidade."
fi

# 7. OTIMIZAÇÃO FINAL
echo "⚡ Otimizando..."
php artisan optimize
php artisan view:cache
php artisan route:cache

echo "🏁 Iniciando Apache..."
exec apache2-foreground
