#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")/.."
# shellcheck disable=SC1091
source scripts/lib-compose.sh

port="${CHATWOOT_HOST_PORT:-3010}"

if command -v psql >/dev/null && [[ -n "${POSTGRES_PASSWORD:-}" ]]; then
  tables=$(PGPASSWORD="${POSTGRES_PASSWORD}" psql -h "${POSTGRES_HOST}" -p "${POSTGRES_PORT:-5432}" \
    -U "${POSTGRES_USERNAME}" -d "${POSTGRES_DATABASE}" -tAc \
    "SELECT count(*) FROM pg_tables WHERE schemaname='${POSTGRES_SCHEMA:-public}';" 2>/dev/null || echo "0")
  if [[ "${tables:-0}" -lt 5 ]]; then
    echo "Chatwoot DB not ready (schema ${POSTGRES_SCHEMA:-public} has ${tables:-0} tables)."
    echo "Run first: ./scripts/install-external-db.sh"
    echo "(Requires pgvector on PostgreSQL: sudo apt install postgresql-16-pgvector)"
    exit 1
  fi
fi

compose up -d redis rails sidekiq
sleep 4

if ! curl -sf "http://127.0.0.1:${port}/" >/dev/null 2>&1; then
  echo "Chatwoot is not responding on port ${port}."
  echo "Check: docker logs qiyasy-chatwoot-rails | tail -30"
  docker ps --filter name=qiyasy-chatwoot-rails --format 'Status: {{.Status}}'
  exit 1
fi

echo "Chatwoot: http://localhost:${port} (local DB ${POSTGRES_DATABASE:-}/${POSTGRES_SCHEMA:-public})"
