full terminology overhaul + zakat fund types + fund allocation
POSITIONING FIX — PNPL is NOT just 'QR codes at events': - Charities collecting at events (QR per table) - High-net-worth donor outreach (personal links via WhatsApp/email) - Org-to-org pledges (multi-charity projects) - Personal fundraisers (LaunchGood/Enthuse redirect) TERMINOLOGY (throughout app): - Events → Campaigns (sidebar, pages, create dialogs, onboarding) - QR Codes page → Pledge Links (sharing-first, QR is one option) - Scans → Clicks (not just QR scans) - 'New Event' → 'New Campaign' - 'Create QR Code' → 'Create Pledge Link' - Source label: 'Table Name' → 'Source / Channel' SHARING (pledge links page): - 4-button share row: Copy · WhatsApp · Email · More (native share) - Each link shows its full URL - Create dialog suggests: 'WhatsApp Family Group, Table 5, Instagram Bio' - QR code is still shown but as one option, not the hero LANDING PAGE (complete rewrite): - Hero: 'Collect pledges. Convert them into donations.' - 4 use case cards: Events, HNW Donors, Org-to-Org, Personal Fundraisers - 'Share anywhere' section: WhatsApp, QR, Email, Instagram, Twitter, 1-on-1 - Platform support: Bank Transfer, LaunchGood, Enthuse, JustGiving, GoFundMe, Any URL - Islamic fund types section: Zakat, Sadaqah, Sadaqah Jariyah, Lillah, Fitrana ZAKAT & FUND TYPES: - Organization.zakatEnabled toggle in Settings - Pledge.fundType: general, zakat, sadaqah, lillah, fitrana - Identity step: fund type picker (5 options) when org has zakatEnabled - Zakat note: Quran 9:60 categories reference - Settings: toggle card with fund type descriptions FUND ALLOCATION: - Event.fundAllocation: 'Mosque Building Fund', 'Orphan Sponsorship' etc. - Charities can also add external URL for reference/allocation (not just fundraisers) - Shows on campaign cards and pledge flow
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
-- Zakat / fund type tracking
|
||||
ALTER TABLE "Organization" ADD COLUMN IF NOT EXISTS "zakatEnabled" BOOLEAN NOT NULL DEFAULT false;
|
||||
ALTER TABLE "Pledge" ADD COLUMN IF NOT EXISTS "fundType" TEXT;
|
||||
ALTER TABLE "Event" ADD COLUMN IF NOT EXISTS "fundAllocation" TEXT;
|
||||
@@ -24,6 +24,7 @@ model Organization {
|
||||
gcAccessToken String?
|
||||
gcEnvironment String @default("sandbox")
|
||||
whatsappConnected Boolean @default(false)
|
||||
zakatEnabled Boolean @default(false) // enables Zakat / Sadaqah / Lillah fund type picker
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@ -62,6 +63,7 @@ model Event {
|
||||
paymentMode String @default("self") // self = we show bank details, external = redirect to URL
|
||||
externalUrl String? // e.g. https://launchgood.com/my-campaign
|
||||
externalPlatform String? // launchgood, enthuse, justgiving, gofundme, other
|
||||
fundAllocation String? // e.g. "Mosque Building Fund" — tracks which fund this event raises for
|
||||
organizationId String
|
||||
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
||||
createdAt DateTime @default(now())
|
||||
@@ -102,6 +104,7 @@ model Pledge {
|
||||
donorEmail String?
|
||||
donorPhone String?
|
||||
giftAid Boolean @default(false)
|
||||
fundType String? // null=general, zakat, sadaqah, lillah, fitrana
|
||||
iPaidClickedAt DateTime?
|
||||
notes String?
|
||||
|
||||
|
||||
Reference in New Issue
Block a user