#!/usr/bin/env bash
# Executar no servidor: bash scripts/setup-server-db.sh
set -euo pipefail

DB_NAME="landpage_agenciajob"
DB_USER="landpage_app"
DB_PASS="${LANDPAGE_DB_PASS:-$(openssl rand -base64 24 | tr -d '/+=' | head -c 24)}"
JWT_SECRET="${JWT_SECRET:-$(openssl rand -base64 48 | tr -d '/+=')}"
APP_DIR="/home/agenciajob/public_html/landpage.agenciajob.com"

cd "$APP_DIR"

psql -h 127.0.0.1 -U postgres -v ON_ERROR_STOP=1 <<SQL
DO \$\$ BEGIN
  CREATE ROLE ${DB_USER} LOGIN PASSWORD '${DB_PASS}';
EXCEPTION WHEN duplicate_object THEN
  ALTER ROLE ${DB_USER} WITH PASSWORD '${DB_PASS}';
END \$\$;

SELECT 'CREATE DATABASE ${DB_NAME} OWNER ${DB_USER}'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '${DB_NAME}')\gexec
GRANT ALL PRIVILEGES ON DATABASE ${DB_NAME} TO ${DB_USER};
SQL

ASAAS_KEY=""
for f in \
  "/home/agenciajob/public_html/copa.agenciajob.com/comunidade/data/config.json" \
  "/home/agenciajob/public_html/copa.agenciajob.com/comunidade/includes/config.php"
do
  if [ -f "$f" ] && [ -z "$ASAAS_KEY" ]; then
    ASAAS_KEY=$(grep -oP '"asaas_api_key"\s*:\s*"\K[^"]+' "$f" 2>/dev/null | head -1 || true)
    [ -z "$ASAAS_KEY" ] && ASAAS_KEY=$(grep -oP "asaas_api_key'\s*=>\s*'\K[^']+" "$f" 2>/dev/null | head -1 || true)
  fi
done

export DATABASE_URL="postgresql://${DB_USER}:${DB_PASS}@127.0.0.1:5432/${DB_NAME}"

cat > .env <<ENV
PORT=43119
DATABASE_URL=${DATABASE_URL}
JWT_SECRET=${JWT_SECRET}
NEXT_PUBLIC_SITE_URL=https://landpage.agenciajob.com
NEXT_PUBLIC_SITE_DOMAIN=landpage.agenciajob.com
ASAAS_API_KEY=${ASAAS_KEY}
ENV

chmod 600 .env
chown agenciajob:agenciajob .env 2>/dev/null || true

npm run db:init
npm run db:seed

echo ""
echo "=== landpage.agenciajob.com (porta 43119) ==="
echo "Admin: admin@landpage.agenciajob.com / Admin@Landpage2025"
echo "User:  usuario@landpage.agenciajob.com / Usuario@Landpage2025"
echo "Demo:  https://landpage.agenciajob.com/como-vender-instagram"
