#!/usr/bin/env bash
# Faunamix canlıya alma — sıralı kontrol listesi (gizli değer yazmaz).
# Çalıştır: bash scripts/print-prod-checklist.sh

set -euo pipefail

cat <<'EOF'
Faunamix — canlıya alma sırası (özet)
=====================================

1) Güvenlik (bir kez, hemen)
   Sohbet veya ekran görüntüsünde görünen tüm parolaları değiştirin:
   MySQL, Gmail uygulama şifresi, admin panel şifresi.

2) Railway (PHP API + MySQL)
   - MySQL ayakta; Faunamix servisi 8080 ile dinliyor olmalı.
   - Ortamda en azından veritabanı erişimi (DB_* veya MYSQL_*) tanımlı olsun.
     Kod DB_* öncelikli; Railway MYSQL_* verirse api/lib/db.php bunları da okur.
   - FAUNAMIX_ALLOWED_ORIGINS: Vercel kökeniniz (https://...), virgülle birden fazla.
   - İsteğe bağlı: FAUNAMIX_TRUST_PROXY=1 (ters vekil arkasında doğru şema için).

3) Üretim veritabanında migration
   Yerelde çalıştırdığınız migration zincirini Railway MySQL üzerinde de çalıştırın
   (aynı scripts/run-database-migrations.sh veya eşdeğeri). Boş DB ile ilk kurulum
   veya mevcut DB ile idempotent tekrar — ikisi de hedeflenir.

4) Yedek / geri dönüş kanıtı
   - Canlıya çıkmadan hemen önce SQL snapshot alın: ./scripts/backup-database.sh
   - İzole restore rehearsal yapın: ./scripts/rehearse-restore.sh
   - DR taraması: php scripts/verify-disaster-recovery.php
   - Restore provasını ayrı hedefte kayda alın; binary log kapalıysa PITR yok kabul edin.

5) Vercel (Next.js)
   - NEXT_PUBLIC_SITE_URL = canlı vitrin URL’niz (HTTPS, sonda / yok)
   - NEXT_PUBLIC_API_URL = Railway’deki API kökü (HTTPS public URL, sonda / yok)
   İletişim ve diğer NEXT_PUBLIC_* için frontend/env.local.example’a bakın.
   Değişkenleri kaydettikten sonra yeniden deploy edin.

6) Panel (bir kez, migration sonrası)
   Admin → Ayarlar → "Rotaları senkronize et" (veya eşdeğer).
   Slug/SEO değişince tekrarlayın.

7) Duman testi
   - Tarayıcı: {API}/api/health.php
   - Ana sayfa, liste, bir ürün, yasal sayfalar, admin girişi.
   - Backup / restore / callback / login akışlarından en az birer smoke test.
   - Release gate (JSON): cd frontend && npm run release:gate
   - Eski özet: npm run go-live:check
   - Yük smoke: frontend içinde npm run load:smoke

Politika ve CI job listesi: docs/production-gates.md

Ödeme (iyzico): ayrı faz; env ve callback hazır olunca açılır.

Yerel doğrulama (geliştirici makinesi):
  ./scripts/verify-faunamix-readiness.sh
  php scripts/verify-disaster-recovery.php
  ./scripts/rehearse-restore.sh
EOF
