#!/bin/bash
set -e

KEYFILE=/data/configdb/mongo-keyfile

# Keyfile yoksa oluştur
if [ ! -f "$KEYFILE" ]; then
  echo "🔑 Creating keyfile..."
  mkdir -p /data/configdb
  openssl rand -base64 756 > "$KEYFILE"
  chmod 600 "$KEYFILE"
  chown 999:999 "$KEYFILE" 2>/dev/null || true
fi

# MongoDB başlat
mongod --replSet rs0 --auth --keyFile "$KEYFILE" --bind_ip_all &
MONGO_PID=$!

# Mongo hazır olana kadar bekle
echo "⏳ Waiting for mongod..."
for i in {1..60}; do
  if mongosh --quiet --eval 'db.adminCommand("ping")' >/dev/null 2>&1; then
    echo "✅ mongod ready"
    break
  fi
  sleep 2
done

# Replika set
echo "⚡ Initiating replSet..."
mongosh --quiet --eval 'try { rs.status(); } catch(e) { rs.initiate({_id:"rs0", members:[{_id:0, host:"localhost:27017"}]}); }'

# Kullanıcılar
echo "🧑‍💻 Creating users..."
mongosh --quiet <<EOF || true
try { db.getSiblingDB("admin").createUser({user:"fikoyt", pwd:"fikoyt1299", roles:[{role:"root", db:"admin"}]}); } catch(e) {}
try { db.getSiblingDB("fikoyt").createUser({user:"fikoyt", pwd:"fikoyt1299", roles:[{role:"root", db:"admin"}]}); } catch(e) {}
EOF

wait $MONGO_PID
