AyrisAI
d00b45ce72
feat(mobile): integrate QrTemplate9 Vintage Table Menu with 9.jpeg background and live editing
2026-08-21 01:19:04 +03:00
AyrisAI
102a9a744b
feat(mobile): integrate QrTemplate8 Emerald & Gold Special with 8.jpeg background and live editing
2026-08-21 01:10:40 +03:00
AyrisAI
b0645c0ac3
feat(mobile): replace blocking modal with inline live inspector for instantaneous visual editing feedback
2026-08-21 01:04:03 +03:00
AyrisAI
2c3599839b
feat(mobile): add QrTemplate6 Stonehearth Grill, modal text editor and vertical positioning (offsetY) controls
2026-08-21 01:00:29 +03:00
AyrisAI
2530ab4005
feat(mobile): add multiline text with Enter, per-text independent font selection and font size controls
2026-08-21 00:55:44 +03:00
AyrisAI
b72846bd91
feat(mobile): integrate QrTemplate5 with 5.png background image and dynamic texts
2026-08-21 00:52:26 +03:00
AyrisAI
d2846ed628
feat(mobile): add QrTemplate4 Crimson Petal, support full Turkish characters on all system fonts and templates
2026-08-21 00:41:16 +03:00
AyrisAI
4dbb68a73a
feat(mobile): add full text editing, show/hide switches and font family selector for QR stands
2026-08-21 00:36:14 +03:00
AyrisAI
932c174b5f
fix(mobile): resolve TSpan text overlapping in QrTemplate3
2026-08-21 00:31:17 +03:00
AyrisAI
34dd24eee2
feat(mobile): register QrTemplate2 Daily Grind and filter UI to active component templates
2026-08-21 00:30:14 +03:00
AyrisAI
8481a34e61
feat(mobile): add QrTemplate3 Pizzeria, fix PDF export for component system
2026-08-21 00:25:44 +03:00
AyrisAI
ccd8c90267
fix(mobile): decode XML entities for react-native-svg text rendering
2026-08-21 00:07:43 +03:00
AyrisAI
3629f98855
fix(mobile): proper nested-g depth counting for qr-placeholder replacement
2026-08-21 00:06:03 +03:00
AyrisAI
dd282f3987
fix(mobile): strip XML comments before SvgXml parse to fix closing tag error
2026-08-21 00:02:37 +03:00
AyrisAI
4236ddb5ee
feat: re-integrate all SVGs from svg ornekleri/ fresh, add qr-6
2026-08-20 23:59:45 +03:00
AyrisAI
c7e4832441
fix(mobile): do not mutate SVG attributes, only replace qr-placeholder group
2026-08-20 23:58:21 +03:00
AyrisAI
fa50e73198
fix(mobile): inject QR directly into SVG XML for pixel-perfect placement
2026-08-20 23:56:37 +03:00
AyrisAI
808097377d
feat(qr-stands): add qr-5 L'Atelier Bistro Fine Dining template
2026-08-20 23:50:30 +03:00
AyrisAI
6cde8dfb87
feat: sync qr presets and mobile rendering with svg/ directory
2026-08-20 23:43:58 +03:00
AyrisAI
01c9f5f195
feat(mobile): render exact SVG vector templates in mobile QR stand screen
2026-08-20 23:43:26 +03:00
AyrisAI
f768b92873
feat(qr-stands): clean SVG template renderer with exact QR placement and no redundant overlays
2026-08-20 23:39:56 +03:00
AyrisAI
eb0b5d1886
feat(qr-stands): add qr-2.svg preset from user code
2026-08-20 23:36:01 +03:00
AyrisAI
38fd0dd030
feat(qr-stands): activate user provided qr-1.svg and qr-4.svg
2026-08-20 23:34:57 +03:00
AyrisAI
18396f3b99
fix(qr-stands): restore exact user-provided qr-1.svg alongside qr-4.svg
2026-08-20 23:31:54 +03:00
AyrisAI
edb7af9288
feat(qr-stands): add flat vector qr-1.svg urban preset
2026-08-20 23:30:04 +03:00
AyrisAI
a0cb04b2c6
feat(qr-stands): set qr-4 as exclusive vector stand template
2026-08-20 23:25:19 +03:00
AyrisAI
4ce6505a4d
feat(qr-stands): add custom-svg-3 preset with user provided SVG stand code
2026-08-20 19:03:18 +03:00
AyrisAI
8efb5a9ff6
fix: render true SVG template vector graphic as stand background
2026-08-20 18:55:21 +03:00
AyrisAI
0a2aae68db
feat: add qr-2.svg template preset (Classic Bistro QR Stand 2)
2026-08-20 18:49:43 +03:00
AyrisAI
984a41d0e5
refactor: simplify QR stand presets to single urban qr-1.svg template
2026-08-20 18:44:44 +03:00
AyrisAI
04863c8a78
feat: add qr-1.svg template integration for QR stand generator
2026-08-20 18:43:15 +03:00
AyrisAI
e63de8584d
style(mobile): render 1:1 pixel-perfect Urban Burger tabletop plaque layout
2026-08-20 18:28:23 +03:00
AyrisAI
3a15dd15b9
feat(mobile): build native in-app QR Stand Generator with theme switcher & A5 PDF / PNG exporter
2026-08-20 18:25:20 +03:00
AyrisAI
bf44bf3e9d
fix(docker): resolve pnpm v10 ERR_PNPM_IGNORED_BUILDS in Dockerfile
2026-08-20 18:22:36 +03:00
AyrisAI
d396cbb221
feat: implement Tabletop QR Stand Generator with high-res PNG and print-ready A5 PDF export
2026-08-20 18:16:49 +03:00
AyrisAI
54a27903c8
chore: remove confidence score step from AI menu scanner flow
2026-08-20 18:03:10 +03:00
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
5103322fa1
feat: dynamically fetch live Cloudflare SSL TXT verification records in GET /domains endpoint
2026-08-20 17:35:23 +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
5cbd80326f
feat: setup Supabase Storage bucket for restaurant assets and add mobile upload helper
2026-08-20 17:30:22 +03:00
AyrisAI
5122ec24fc
fix: revert to stable Next.js 15 and add @swc/helpers to dependencies for Docker standalone runtime
2026-08-20 17:24:40 +03:00
AyrisAI
b950a31e3b
fix: move @import rule to top of globals.css to satisfy PostCSS specification
2026-08-20 17:20:22 +03:00
AyrisAI
f2b2537cd0
chore: upgrade Next.js to latest in web app
2026-08-20 17:15:42 +03:00
AyrisAI
484c7ce113
fix: resolve TypeScript type mismatch error in fetchRestaurantBySlug
2026-08-20 17:12:32 +03:00
AyrisAI
067d65940f
fix: fallback to basic select query when cover_url column is not present on production database
2026-08-20 17:10:19 +03:00
AyrisAI
b7e128fb8c
fix: resolve slug fallback rendering for demo/gusto-brasserie and add root [slug] routing
2026-08-20 17:05:45 +03:00
AyrisAI
6055130828
docs: record EAS env var and entitlement identifier bugs
2026-08-20 16:16: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
102cc0781e
fix(mobile): add missing RevenueCat key to EAS production build env
...
eas.json's production build profile hardcodes its own env block —
local apps/mobile/.env is never read by EAS cloud builds. The
RevenueCat public key was missing from that list, so every
production/TestFlight build compiled EXPO_PUBLIC_REVENUECAT_API_KEY
as undefined, making configurePurchases() silently no-op and every
later Purchases call throw "no singleton instance".
2026-08-20 15:57:40 +03:00