#!/usr/bin/env bash
# setup-tenant.sh — Provisiona a estrutura de pastas de um novo tenant Tikah.
# Uso: ./setup-tenant.sh <slug>
# Exemplo: ./setup-tenant.sh carlaandrade

set -euo pipefail

SLUG="${1:?Informe o slug do tenant. Ex: ./setup-tenant.sh carlaandrade}"

# Validação básica do slug
if ! echo "$SLUG" | grep -qE '^[a-z0-9][a-z0-9-]{0,47}$'; then
  echo "ERRO: slug inválido '$SLUG'. Use apenas letras minúsculas, números e hífens."
  exit 1
fi

BASE_DIR="$(cd "$(dirname "$0")" && pwd)"
UPLOAD_DIR="$BASE_DIR/public/uploads/tenants/$SLUG"
LOG_DIR="$BASE_DIR/logs"
LOG_FILE="$LOG_DIR/tenant-setup.log"

echo "→ Provisionando tenant: $SLUG"

# Cria diretórios de upload
mkdir -p "$UPLOAD_DIR/speakers"
mkdir -p "$UPLOAD_DIR/banners"
mkdir -p "$UPLOAD_DIR/documents"
echo "  ✓ Diretórios criados: $UPLOAD_DIR"

# Cria arquivo .gitkeep para preservar pastas no git
touch "$UPLOAD_DIR/speakers/.gitkeep"
touch "$UPLOAD_DIR/banners/.gitkeep"
touch "$UPLOAD_DIR/documents/.gitkeep"

# Log
mkdir -p "$LOG_DIR"
echo "[$(date -Iseconds)] PROVISION slug=$SLUG dir=$UPLOAD_DIR" >> "$LOG_FILE"
echo "  ✓ Log registrado em $LOG_FILE"

echo ""
echo "✓ Tenant '$SLUG' provisionado com sucesso."
echo ""
echo "  URL do evento:  tikah.com.br/$SLUG"
echo "  Uploads em:     public/uploads/tenants/$SLUG/"
echo ""
echo "  Para renomear o slug no futuro:"
echo "    ./setup-tenant.sh <novo-slug>"
echo "    # (e atualize o banco via painel do organizador)"
