Commit Graph
47 Commits
Author SHA1 Message Date
isaaccladandCursor 53a83b84c5 Collect MoMo MSISDN and open waiting page on Pay.
Deploy Ladill Mini / deploy (push) Successful in 42s
Payment QR was still Paystack-only: no customer_phone and mobile iframe sheet. Require MoMo number, pass it to Ladill Pay, and full-page redirect for mtn_momo waiting URLs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-13 22:52:52 +00:00
isaaccladandCursor ff6e5aee51 Add Merchant-style hero to My Payment QR index page.
Deploy Ladill Mini / deploy (push) Successful in 39s
Surface wallet balance, QR count, and active stats in a gradient hero with balance-gated create CTA.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 20:34:29 +00:00
isaaccladandCursor 4fed91150f Throttle platform SSO session checks to cut per-request auth latency.
Deploy Ladill Mini / deploy (push) Successful in 56s
Verify auth.ladill.com at most once every 90s; recommend Redis for session/cache in .env.example.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 16:51:01 +00:00
isaaccladandCursor 0b0193b5d7 Hide header avatar on mobile and sync shared mobile nav partials.
Deploy Ladill Mini / deploy (push) Successful in 37s
Profile moves to the bottom nav sheet on small screens; optional search tab
support is synced from the Ladill platform template.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 12:04:32 +00:00
isaaccladandCursor 517d7c52e3 Redirect legacy /q/* URLs to canonical ladl.link addresses.
Deploy Ladill Mini / deploy (push) Successful in 25s
External /q requests 301/307 to ladl.link; internal X-Ladill-Internal requests still serve content for platform proxying.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 17:19:04 +00:00
isaaccladandCursor a07dd558a3 Wire LadillLink through QrCode model and remaining QR surfaces.
Deploy Ladill Mini / deploy (push) Successful in 35s
Public URLs, encoded payloads, slug preview, payment callbacks, and asset paths now use ladl.link instead of ladill.com/q/*.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 16:16:25 +00:00
isaaccladandCursor 3fd5d785e3 Use ladl.link URLs for all front-facing QR and short-link surfaces.
Deploy Ladill Mini / deploy (push) Successful in 39s
Public landing pages, asset paths, payment callbacks, and redirects now go through QrCode::publicPath() / LadillLink instead of ladill.com/q/* routes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 15:46:22 +00:00
isaaccladandClaude Opus 4.8 c6cdbab469 Add branded boot splash (Ladill Mail style) on app pages
Deploy Ladill Mini / deploy (push) Successful in 26s
InjectBootSplash middleware shows a self-branded loading splash once per session
while the app boots, then fades out.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 22:14:46 +00:00
isaaccladandClaude Opus 4.8 9cbdd1a26c Add wallet balance widget to the profile menu (after Billing)
Deploy Ladill Mini / deploy (push) Successful in 25s
Wallet balance peek rendered as a menu row directly under Billing, backed by
a /wallet/balance endpoint (BillingClient) and guarded by Route::has. Also
opens Afia via a direct window event for reliability.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 12:26:03 +00:00
isaaccladandCursor ea51b49342 Serve assetlinks.json for Android App Links verification.
Deploy Ladill Mini / deploy (push) Successful in 40s
Expose /.well-known/assetlinks.json from env-configured Play app signing fingerprints so mini.ladill.com passes Play Console deep link domain checks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-22 00:08:56 +00:00
isaaccladandCursor 094bd5b886 Bind app sessions to the platform auth session.
Deploy Ladill Mini / deploy (push) Successful in 26s
Clear local sessions when auth.ladill.com signs out and ping the platform session from keepalive.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-20 08:26:30 +00:00
isaaccladandCursor 1ef6148ee3 Lower Mini platform fee from 5% to 3.5%.
Deploy Ladill Mini / deploy (push) Successful in 26s
Update checkout constant, payout copy, and Afia prompts to match the new Ladill Pay rate.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 19:51:35 +00:00
isaaccladandCursor ab84f66128 Hide the current page link in the unified profile dropdown.
Deploy Ladill Mini / deploy (push) Successful in 59s
Skip Home, account, and admin menu items when the user is already on that destination.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 10:16:39 +00:00
isaaccladandCursor 3e76b06bc9 Unify logged-in profile dropdown with platform account menu.
Deploy Ladill Mini / deploy (push) Successful in 34s
Wire UserProfileMenu and shared Blade partial into topbar, mobile nav, and layouts so menu items match the account portal (Ladill Mail excluded).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 09:33:55 +00:00
isaaccladandCursor df07b9731d Send SSO guests to ladill.com/products/mini instead of subdomain landings.
Deploy Ladill Mini / deploy (push) Successful in 39s
Remove interactive OAuth fallback on silent SSO failure and add ladill.marketing_url config so app subdomains open the dashboard when signed in locally.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 22:21:52 +00:00
isaaccladandCursor 2c4eaf1241 Add wallet auto-withdraw threshold support for Ladill Mini.
Deploy Ladill Mini / deploy (push) Failing after 42s
Store per-user auto-withdraw amounts, expose them via the wallet API, and process withdrawals when balances reach the configured threshold after payments or on a schedule.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 07:44:42 +00:00
isaaccladandCursor ec9f09f997 Fix payment notification copy to say paid to the business, not via.
Deploy Ladill Mini / deploy (push) Successful in 29s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 19:26:36 +00:00
isaaccladandCursor 136bfbea47 Wire seller push notifications with FCM, inbox API, and payment milestones.
Deploy Ladill Mini / deploy (push) Successful in 52s
Sellers get instant payment alerts on Android; withdrawals respect payout prefs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 19:04:44 +00:00
isaaccladandCursor ad96754099 Add Mini API endpoint for Afia chat so the Android app can reach the assistant with Bearer auth.
Deploy Ladill Mini / deploy (push) Successful in 28s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 18:12:32 +00:00
isaaccladandClaude Opus 4.8 06efef53b6 Mini API: include saved phone in account settings.
Deploy Ladill Mini / deploy (push) Successful in 30s
settings() now fetches phone from the central identity profile (guarded), so the
app's Profile screen shows the phone the user previously saved.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 13:11:17 +00:00
isaaccladandClaude Opus 4.8 1b134d7fd3 Mini API: banks endpoint for payout-account picker.
Deploy Ladill Mini / deploy (push) Successful in 1m22s
GET /api/v1/mini/wallet/banks?type=bank|mobile_money proxies to the central
identity banks endpoint so the app's payout sheet populates from Paystack.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 12:52:19 +00:00
isaaccladandClaude Opus 4.8 3406bd730a Mini API: support ticket endpoints (replaces Afia support chat).
Deploy Ladill Mini / deploy (push) Successful in 28s
Support is now a ticket system proxied to the central identity support API:
GET/POST /mini/support/tickets and GET /mini/support/tickets/{id}. Removed the
Afia-backed /support/chat route.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 12:29:35 +00:00
isaaccladandClaude Opus 4.8 af1f197059 Mini API: avatar, wallet payout/withdraw, stale-payment auto-cancel.
Deploy Ladill Mini / deploy (push) Successful in 48s
Adds account avatar upload (multipart proxy to identity), wallet payout-account
+ withdrawal endpoints, and a hourly mini:cancel-stale-payments command that
cancels payments pending beyond 6h (new MiniPayment::STATUS_CANCELED).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 12:03:48 +00:00
isaaccladandClaude Opus 4.8 c39e38cbe0 Mini API: account settings, wallet & support endpoints for the app.
Deploy Ladill Mini / deploy (push) Successful in 40s
Adds /api/v1/mini account (settings, profile, change-password), wallet (balance
+ ledger, Paystack top-up) and support (Afia chat) endpoints. Account/profile/
password/top-up proxy to the central identity API via a CallsIdentityApi trait;
notifications, wallet balance and support chat are served locally.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 11:03:33 +00:00
isaaccladandClaude Opus 4.8 90d7aab547 Fix 500 on mobile sign-in: acting account + connection errors.
Deploy Ladill Mini / deploy (push) Successful in 1m31s
presentUser() ran on the public login/register routes where SetActingAccount
never runs, so ladill_account() was null and dereferencing it 500'd. Default
the acting account to the user at sign-in, and route identity-API calls through
a helper with timeouts that turns ConnectionException into a clean message
instead of an unhandled 500.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 09:51:41 +00:00
isaaccladandClaude Opus 4.8 9f175c5334 Afia: fix context() calling undefined QrTypeCatalog::eventTypes()
Deploy Ladill Mini / deploy (push) Successful in 27s
Use paymentTypes() (this app's catalog) so the chat context loads instead of
500ing — the eventTypes() call was a QR Plus leftover.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 07:45:17 +00:00
isaaccladandClaude Opus 4.8 2065306541 Afia: rebrand assistant from QR Plus to Ladill Mini
Deploy Ladill Mini / deploy (push) Successful in 1m13s
Mini shipped the QR Plus Afia prompt. Rewrite it for Ladill Mini — payment
QRs, payments, payouts, 5% fee.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 07:34:17 +00:00
isaaccladandClaude Opus 4.8 cd56771b59 Mobile auth: native login + register via central identity API.
Deploy Ladill Mini / deploy (push) Successful in 31s
Login no longer uses the OAuth password grant (which wasn't enabled, the cause
of login failures). Both login and the new register endpoint proxy to
auth.ladill.com /api/identity/auth/* (shared IDENTITY_API_KEY_MINI), provision
the local mirror, and issue a Sanctum token — one Ladill identity across web
and app.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 23:04:04 +00:00
isaaccladandClaude Opus 4.8 307248749b Add mobile API for Ladill Mini Android app.
Deploy Ladill Mini / deploy (push) Successful in 47s
Token login via OAuth password grant against auth.ladill.com (AuthController),
plus /api/v1/mini endpoints (overview, payment-qrs CRUD + preview, payments,
payouts) mirroring the web Mini controllers. Sanctum abilities mini:read/write.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 22:13:30 +00:00
isaaccladandClaude Opus 4.8 70ded0e668 Add product landing page at root (replaces SSO redirect).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 22:13:30 +00:00
isaaccladandClaude Opus 4.8 019c450cdd Per-app logout keeps platform SSO session (quick password-less re-entry).
Deploy Ladill Mini / deploy (push) Successful in 1m14s
Local-only sign-out: end this app's session but leave the auth.ladill.com
session intact, so the signed-out page's Sign in again re-auths silently via
prompt=none. Full sign-out of all Ladill apps remains on account.ladill.com.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 11:23:33 +00:00
isaaccladandCursor ce3b4e1a41 Fix SSO popup callback infinite loop and post-login 500.
Deploy Ladill Mini / deploy (push) Successful in 36s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 20:21:24 +00:00
isaaccladandCursor c42e5819dc Keep the app subdomain visible during Ladill SSO login and logout.
Deploy Ladill Mini / deploy (push) Successful in 42s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 12:14:48 +00:00
isaaccladandCursor 7ffa44b128 Add mobile-only payment search for Ladill Mini.
Deploy Ladill Mini / deploy (push) Successful in 24s
Wire the mobile search tab to a payments search page and remove desktop header search shortcuts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 21:47:33 +00:00
isaaccladandCursor cf6dda5793 Route Mini payments through Ladill Pay API.
Deploy Ladill Mini / deploy (push) Successful in 29s
Checkout and settlement now go via platform Pay instead of direct Paystack + Billing credit, with legacy MIN-* support retained.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 05:20:09 +00:00
isaaccladandCursor 99dae20743 Fix payment QR edits and mobile payment sheet keyboard gap.
Deploy Ladill Mini / deploy (push) Successful in 40s
Persist payment QR business fields on update, handle is_active correctly, and keep the amount bottom sheet flush to the screen while moving with the keyboard on iOS.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 23:16:55 +00:00
isaaccladandCursor d3ff5480b2 Use platform Paystack email and Figtree on Mini payment pages.
Deploy Ladill Mini / deploy (push) Successful in 1m11s
Route Paystack receipts to pay@ladill.com instead of vendor emails, and load Figtree on the public payment and confirmation screens.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 21:53:33 +00:00
isaaccladandCursor c51229e10c Fix Mini Paystack checkout by redirecting instead of iframe embed.
Deploy Ladill Mini / deploy (push) Successful in 29s
Paystack blocks checkout in third-party iframes, so payment QRs now navigate to the hosted checkout URL and prefer authorization_url from the initialize response.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 21:34:33 +00:00
isaaccladandCursor f52e3e882e Add delete for Mini payment QRs.
Deploy Ladill Mini / deploy (push) Successful in 33s
Vendors can remove a payment QR from the show page; stored images are cleaned up and the short link stops resolving.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 20:49:15 +00:00
isaaccladandCursor 327cf65e6c Remove vendor logo upload from Mini payment QR create and edit.
Deploy Ladill Mini / deploy (push) Successful in 28s
Vendors only need label, business name, and optional branch — no logo field in the flow.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 20:43:33 +00:00
isaaccladandCursor f405217a33 Use mobile bottom sheet for Mini checkout and wrap Paystack in branded frame.
Deploy Ladill Mini / deploy (push) Successful in 25s
Amount entry slides up from the bottom on mobile; Paystack opens in a Ladill Mini sheet on mobile and a centered modal on desktop instead of leaving the site.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 20:29:13 +00:00
isaaccladandCursor f0bf96b438 Strip Mini checkout to amount-only and use vendor email for Paystack.
Deploy Ladill Mini / deploy (push) Successful in 30s
Customers enter an amount and tap Pay; the merchant's account email (or notifications email from settings) is passed to Paystack instead of asking the payer for details.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 20:22:16 +00:00
isaaccladandCursor 7eaa0ab23a Fix payment QR preview rendering using inline data URIs.
Deploy Ladill Mini / deploy (push) Successful in 44s
Match Events/QR Plus pattern so QR images render without a separate authenticated preview URL, and add a styled preview card on the show page.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 19:57:55 +00:00
isaaccladandCursor 47b6772295 Fix undefined $type when creating payment QRs.
Deploy Ladill Mini / deploy (push) Successful in 52s
Define QR type before the wallet balance check so payment codes skip billing without hitting an undefined variable.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 19:49:37 +00:00
isaaccladandCursor 8f9fc426c3 Read Paystack keys from platform admin settings.
Deploy Ladill Mini / deploy (push) Failing after 1m15s
Add a platform DB connection and PlatformSetting model so Mini uses the same admin-panel Paystack credentials as the monolith and other extracted apps.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 19:06:23 +00:00
isaaccladandCursor 987f7dce0c Fix leftover Events routes breaking SSO and dashboard.
Deploy Ladill Mini / deploy (push) Failing after 52s
Replace events.* route names with mini.* defaults, remove unused topbar search, and align deploy script with ladill-mini paths.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 18:54:59 +00:00
isaaccladandCursor db66d99895 Initial Ladill Mini app — trader payment QRs without styling.
Lean control center at mini.ladill.com: payment QR CRUD, Paystack checkout with 5% fee settlement via Billing API, payments feed, and payouts. QR codes use a fixed black-and-white preset only.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-07 18:43:39 +00:00