AyrisAI bb4cd1b0fc fix(mobile): stop matching entitlement by hardcoded identifier string
RevenueCat's entitlement identifier contains U+2024 (ONE DOT LEADER),
not a plain period — "Menul.io Pro" never matched the real
"Menul⁚io Pro" key, so isProActive() stayed false even after a real
purchase (confirmed via a genuine sandbox trial that RevenueCat
recorded as active while the app kept showing "Ücretsiz plan").
RevenueCat's API doesn't allow renaming an entitlement's lookup_key
after creation (405), so fixed on our side instead: this app only
ever grants one entitlement, so "any active entitlement" == Pro,
no identifier string needed.
2026-08-20 16:15:44 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00
2026-08-20 01:51:59 +03:00

Menulio

AI QR Menü SaaS. Ürün detayları için docs/AI_QR_Menu_SaaS_PRD.md, faz planı için docs/ROADMAP.md.

Yapı

apps/
  api/      Node.js + Fastify — business logic, PRD §23
  web/      Next.js — public menu (customer-facing, PRD §9)
  mobile/   Expo — restaurant owner app (management, PRD §2)
packages/
  shared/   Ortak TS tipleri ve theme config şeması
supabase/
  migrations/  DB şeması (PRD §22)
  seed.sql     Başlangıç temaları

Geliştirme

pnpm install
Komut Ne çalıştırır
pnpm dev:api API — http://localhost:3001
pnpm dev:web Public web — http://localhost:3000
pnpm dev:mobile Expo dev server

Supabase local (Docker gerekir):

npx supabase start
npx supabase db reset   # migration + seed uygular

Her app'in .env.example dosyasını .env'e kopyalayıp doldurun.

Faz durumu

Şu an Faz 0 — Altyapı tamamlandı (monorepo iskeleti, DB şeması, boş route/screen stub'ları). Sıradaki adım Faz 1 — Manuel akış: gerçek restoran/menü CRUD'unu API ve mobile'da uçtan uca bağlamak. Detaylar için ROADMAP.md.

S
Description
No description provided
Readme
69 MiB
Languages
TypeScript 98.7%
Dockerfile 0.4%
Objective-C++ 0.3%
Ruby 0.3%
JavaScript 0.1%
Other 0.1%