Commit Graph

22 Commits

Author SHA1 Message Date
d0475743f8 fix(finance): gracefully handle initial state without rent rules
Allow building the finance dashboard even if no rent rule is configured for the cycle.
Defaults to 0 rent in the cycle's currency. Added regression tests in application
service and miniapp dashboard handler.
2026-03-15 01:38:54 +04:00
488a488137 feat: add quick payment action and improve copy button UX
Mini App Home Screen:
- Add 'Record Payment' button to utilities and rent period cards
- Pre-fill payment amount with member's share (rentShare/utilityShare)
- Modal dialog with amount input and currency display
- Toast notifications for copy and payment success/failure feedback

Copy Button Improvements:
- Increase spacing between icon and text (4px → 8px)
- Add hover background and padding for better touch target
- Green background highlight when copied (in addition to icon color change)
- Toast notification appears when copying any value

Backend:
- Add /api/miniapp/payments/add endpoint for quick payments
- Payment notifications sent to 'reminders' topic in Telegram
- Include member name, payment type, amount, and period in notification

Files:
- New: apps/miniapp/src/components/ui/toast.tsx
- Modified: apps/miniapp/src/routes/home.tsx, apps/miniapp/src/index.css,
  apps/miniapp/src/theme.css, apps/miniapp/src/i18n.ts,
  apps/bot/src/miniapp-billing.ts, apps/bot/src/server.ts

Quality Gates:  format, lint, typecheck, build, test

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-14 08:51:53 +04:00
1274cefc0f Stabilize purchase functionality: fix ID prefix, uniqueness, and split participant inclusion 2026-03-13 22:29:17 +04:00
588174fa52 Support rebalance and validate purchase splits
Add ParticipantShare type and client-side rebalance/validation helpers for purchase splits (rebalancePurchaseSplit, recalculatePercentages, calculateRemainingToAllocate, validatePurchaseDraft). Integrate rebalancing and validation into the miniapp ledger UI (auto-adjust shares, percentage<>amount syncing, remaining/error display, prefill participants on new purchase, disable save when invalid). On the backend, tighten input validation in finance-command-service for custom_amounts (require explicit shares and sum match) and make settlement-engine more lenient when reading legacy/malformed custom splits (ignore missing shares, accept explicit subset). Also add a test ensuring dashboard generation doesn't 500 on legacy malformed purchases.
2026-03-13 07:54:30 +04:00
0d2065fd5e feat(miniapp): redesign balance and due-state flows 2026-03-12 14:08:55 +04:00
6053379f31 fix(miniapp): clarify cycle summary and balance sections 2026-03-12 13:12:39 +04:00
135a2301ca feat(miniapp): redesign member balance surfaces 2026-03-12 02:10:22 +04:00
8401688032 feat(purchase): add per-purchase participant splits 2026-03-11 14:34:27 +04:00
98988159eb feat(member): add away billing policies 2026-03-11 14:05:52 +04:00
4dde04ca06 fix(finance): prefer open cycle in dashboard 2026-03-11 00:36:42 +04:00
753286a1f6 feat(finance): add billing correction APIs and cycle rollover 2026-03-10 22:03:30 +04:00
b7658164a8 feat(miniapp): improve mobile billing and utility controls 2026-03-10 18:50:19 +04:00
c292518760 feat(miniapp): show payment activity in dashboard 2026-03-10 17:16:16 +04:00
1988521931 feat(payments): track household payment confirmations 2026-03-10 17:00:45 +04:00
fb85219409 feat(finance): add settlement currency and cycle fx rates 2026-03-10 16:46:59 +04:00
4c0508f618 fix(miniapp): show original ledger currencies 2026-03-10 15:58:33 +04:00
6a04b9d7f5 feat(finance): support weighted rent split 2026-03-10 02:47:58 +04:00
29563c24eb feat(miniapp): add cycle-level billing controls 2026-03-10 01:53:11 +04:00
29f6d788e7 refactor(time): migrate runtime time handling to Temporal 2026-03-09 07:18:09 +04:00
c8b17136be fix(review): harden miniapp auth and finance flows 2026-03-09 00:30:31 +04:00
c5c356f2b2 feat(miniapp): add finance dashboard view 2026-03-08 22:40:49 +04:00
f6d1f34acf feat(architecture): add finance repository adapters 2026-03-08 22:14:09 +04:00