#!/usr/bin/env bash
# Kuruş geliştirme ortamı başlatıcısı — PostgreSQL + API (statik web build'i de sunar)
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
export PGDATA="$ROOT/data/pg"
export PGBIN="/usr/lib/postgresql/16/bin"

# 1) PostgreSQL'i veri dizininden başlat (yoksa initdb)
if [ ! -f "$PGDATA/PG_VERSION" ]; then
  echo "[dev] PostgreSQL veri dizini yok, initdb çalıştırılıyor..."
  mkdir -p "$PGDATA"
  chown -R postgres:postgres "$ROOT/data" 2>/dev/null || true
  su -s /bin/bash postgres -c "$PGBIN/initdb -D $PGDATA -E UTF8 --locale=C.UTF-8" >/dev/null
fi
if ! su -s /bin/bash postgres -c "$PGBIN/pg_isready -h 127.0.0.1 -p 5432" >/dev/null 2>&1; then
  echo "[dev] PostgreSQL başlatılıyor..."
  su -s /bin/bash postgres -c "$PGBIN/pg_ctl -D $PGDATA -l $PGDATA/logfile start"
  sleep 2
fi

# 2) DB + kullanıcı (yoksa)
su -s /bin/bash postgres -c "psql -h 127.0.0.1 -p 5432 -tAc \"SELECT 1 FROM pg_roles WHERE rolname='kurus'\"" | grep -q 1 || \
  su -s /bin/bash postgres -c "psql -h 127.0.0.1 -p 5432 -c \"CREATE USER kurus WITH PASSWORD 'kurus_dev_pw';\""
su -s /bin/bash postgres -c "psql -h 127.0.0.1 -p 5432 -tAc \"SELECT 1 FROM pg_database WHERE datname='kurus'\"" | grep -q 1 || \
  su -s /bin/bash postgres -c "psql -h 127.0.0.1 -p 5432 -c 'CREATE DATABASE kurus OWNER kurus;'"

# 3) API'yi dev modda başlat (port 3000, web build'ini de sunar)
cd "$ROOT"
echo "[dev] API başlatılıyor (port 3000)..."
exec pnpm --filter @kurus/api dev
