Commit Graph
9 Commits
Author SHA1 Message Date
AyrisAI 3f326fa407 feat: allow updating custom menu slug with format validation, uniqueness checking and active cache sync 2026-08-20 17:58:42 +03:00
AyrisAI e7d0bcc505 feat: implement DELETE /restaurants/:id endpoint and mobile UI danger zone for restaurant deletion 2026-08-20 17:44:55 +03:00
AyrisAI 8adec100af feat: render CNAME and Cloudflare SSL TXT verification instructions with copy buttons in mobile app domain settings 2026-08-20 17:33:14 +03:00
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
AyrisAI 0836fc8539 feat: redesign web menu layout, add header cover banner & dynamic header layout, refine mobile inputs and theme selector 2026-08-20 15:07:13 +03:00
AyrisAI 67cd5a488c fix(mobile): fix unreachable back button on subscription screen
Missing safe-area top inset pushed the header (back arrow + title)
up under the status bar/notch, overlapping the clock and making the
button effectively untappable. Also falls back to router.replace
when there's no back history instead of silently no-op'ing.
2026-08-20 13:33:24 +03:00
AyrisAI d87f66efff feat(mobile): gate publish behind subscription, surface free trial
Publishing (including re-publishing after a lapsed subscription —
PRD §15) now checks Pro entitlement first; if inactive, prompts the
owner to the paywall instead of calling the publish endpoint. The
paywall also flags packages with an active introductory offer as
"7 gün ücretsiz dene" (both plans now have a 7-day free trial
configured in App Store Connect, Turkey territory).
2026-08-20 13:23:55 +03:00
AyrisAI b25c742eea feat(mobile): integrate react-native-purchases (RevenueCat)
- Purchases.configure() runs with appUserID = restaurantId at every
  point the id becomes known (login resolve, cold-start rehydration,
  onboarding restaurant creation) — this must match what the backend
  webhook expects (see apps/api/src/routes/subscription.ts).
- New account/subscription.tsx paywall: current entitlement status,
  offering packages with real store prices, purchase, restore.
- Linked from the account screen.

Native module — requires an EAS/dev-client build, not plain Expo Go.
2026-08-20 13:20:54 +03:00
AyrisAI 97b83c7fd4 first commit 2026-08-20 01:51:59 +03:00