diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index 8d48b89..d05aff8 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -2,6 +2,28 @@ Faz tanımları için [ROADMAP.md](./ROADMAP.md). Bu dosya ne yapıldığını, ne yapılmadığını ve bilinen sınırlamaları takip eder — faz atlarken buraya bakıp neyin gerçek neyin stub olduğunu hatırlamak için. +## App Store Connect + RevenueCat kurulumu (2026-08-20) + +**App Store Connect** (API ile, gerçek üretim hesabına karşı): +- Store metinleri yazıldı: alt başlık, açıklama, anahtar kelimeler, tanıtım metni, destek/pazarlama/gizlilik URL'leri, telif hakkı +- Kategori: Food & Drink +- En son build (v10) versiyona bağlandı +- Subscription group "Menulio Pro" + iki ürün oluşturuldu: `menu_pro_monthly`, `menu_pro_yearly` (Türkçe isim/açıklama ile) +- Fiyatlandırma kullanıcı tarafından App Store Connect UI'dan girildi: aylık 250 TL, yıllık 2500 TL +- **Kullanıcının tamamlaması gereken:** Yaş derecelendirmesi anketi, en az 1 ekran görüntüsü — API'nin güvenilir şekilde dolduramadığı/dolduramayacağı alanlar + +**RevenueCat** (proje zaten `proj0d3bc1c1` olarak mevcuttu, API ile tamamlandı): +- Gerçek App Store ürünleri (`menu_pro_monthly`, `menu_pro_yearly`) "Menul.io (App Store)" app'ine eklendi +- "Menulio Pro" entitlement'ına bağlandı +- "default" offering'in Monthly/Yearly paketlerine iliştirildi + +**Backend:** `POST /subscription/webhook` gerçek mantıkla yazıldı — Authorization header'ı (shared secret) doğruluyor, RevenueCat event tipini `subscriptions.status`'a çeviriyor (`INITIAL_PURCHASE`/`RENEWAL`/`PRODUCT_CHANGE`/`UNCANCELLATION` → active, `BILLING_ISSUE` → grace_period, `EXPIRATION` → suspended; `CANCELLATION` tek başına suspend etmiyor, sadece auto-renew kapanıyor). Gerçek Supabase'e karşı uçtan uca test edildi. + +**Kalan (henüz yapılmadı):** +- Mobile'da `react-native-purchases` SDK'sı hiç kurulu değil — paywall ekranı, `Purchases.configure({ appUserID: restaurantId })` çağrısı, satın alma akışı yazılmadı. Webhook'un `app_user_id`'yi restoran ID'si olarak eşleştirebilmesi için bu SDK entegrasyonu **zorunlu**. +- RevenueCat Dashboard'da webhook URL'i (`https://api.menul.io/subscription/webhook`) ve Authorization header değeri (`Bearer test_MoTphXMYyNDmzeBCbvYVhfrcCjl`) henüz elle girilmedi. +- API servisine `REVENUECAT_WEBHOOK_SECRET` env değişkeni henüz prod'a eklenmedi (local `.env`'de var, Coolify'a taşınmadı). + ## Faz 0 — Altyapı ✅ (2026-08-19) - pnpm monorepo: `apps/api` (Fastify), `apps/web` (Next.js), `apps/mobile` (Expo Router), `packages/shared`