@bash-app/bash-common 30.95.0 → 30.96.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/definitions.d.ts +0 -36
- package/dist/definitions.d.ts.map +1 -1
- package/dist/definitions.js +0 -45
- package/dist/definitions.js.map +1 -1
- package/dist/membershipDefinitions.d.ts +138 -0
- package/dist/membershipDefinitions.d.ts.map +1 -1
- package/dist/membershipDefinitions.js +416 -0
- package/dist/membershipDefinitions.js.map +1 -1
- package/dist/utils/paymentUtils.d.ts +6 -2
- package/dist/utils/paymentUtils.d.ts.map +1 -1
- package/dist/utils/paymentUtils.js +27 -86
- package/dist/utils/paymentUtils.js.map +1 -1
- package/dist/utils/service/frontendServiceBookingUtils.d.ts +1 -1
- package/dist/utils/service/frontendServiceBookingUtils.d.ts.map +1 -1
- package/dist/utils/service/frontendServiceBookingUtils.js +3 -3
- package/dist/utils/service/frontendServiceBookingUtils.js.map +1 -1
- package/package.json +1 -1
- package/src/definitions.ts +0 -54
- package/src/membershipDefinitions.ts +549 -0
- package/src/utils/paymentUtils.ts +34 -124
- package/src/utils/service/frontendServiceBookingUtils.ts +3 -3
|
@@ -9,9 +9,425 @@ export const MEMBERSHIP_PRICING = {
|
|
|
9
9
|
Elite: { monthly: 49900, yearly: 500000 }, // $499/month, $5,000/year
|
|
10
10
|
Legend: { monthly: 99900, yearly: 1000000 }, // $999/month, $10,000/year
|
|
11
11
|
};
|
|
12
|
+
// Helper: Get monthly price in cents for a tier (for BashCash calculations)
|
|
13
|
+
export const MEMBERSHIP_MONTHLY_PRICE_CENTS = {
|
|
14
|
+
Basic: MEMBERSHIP_PRICING.Basic.monthly,
|
|
15
|
+
Creator: MEMBERSHIP_PRICING.Creator.monthly,
|
|
16
|
+
Pro: MEMBERSHIP_PRICING.Pro.monthly,
|
|
17
|
+
Elite: MEMBERSHIP_PRICING.Elite.monthly,
|
|
18
|
+
Legend: MEMBERSHIP_PRICING.Legend.monthly,
|
|
19
|
+
};
|
|
12
20
|
export const MEMBERSHIP_TIER_HIERARCHY = [
|
|
13
21
|
'Basic', 'Creator', 'Pro', 'Elite', 'Legend'
|
|
14
22
|
];
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// BASHCASH REWARDS SYSTEM
|
|
25
|
+
// ============================================================================
|
|
26
|
+
/**
|
|
27
|
+
* BashCash rewards per membership tier
|
|
28
|
+
* All amounts in CENTS (1 credit = 1 cent = $0.01)
|
|
29
|
+
*/
|
|
30
|
+
export const BASHCASH_REWARDS = {
|
|
31
|
+
Basic: {
|
|
32
|
+
monthlyCredits: 0,
|
|
33
|
+
ticketCashbackRate: 0,
|
|
34
|
+
serviceCashbackRate: 0,
|
|
35
|
+
},
|
|
36
|
+
Creator: {
|
|
37
|
+
monthlyCredits: 10000, // 10,000 credits = $100/month
|
|
38
|
+
ticketCashbackRate: 0.05, // 5% cashback
|
|
39
|
+
serviceCashbackRate: 0.03, // 3% cashback
|
|
40
|
+
},
|
|
41
|
+
Pro: {
|
|
42
|
+
monthlyCredits: 40000, // 40,000 credits = $400/month
|
|
43
|
+
ticketCashbackRate: 0.05, // 5% cashback
|
|
44
|
+
serviceCashbackRate: 0.03, // 3% cashback
|
|
45
|
+
},
|
|
46
|
+
Elite: {
|
|
47
|
+
monthlyCredits: 120000, // 120,000 credits = $1,200/month
|
|
48
|
+
ticketCashbackRate: 0.05, // 5% cashback
|
|
49
|
+
serviceCashbackRate: 0.03, // 3% cashback
|
|
50
|
+
},
|
|
51
|
+
Legend: {
|
|
52
|
+
monthlyCredits: 250000, // 250,000 credits = $2,500/month
|
|
53
|
+
ticketCashbackRate: 0.05, // 5% cashback
|
|
54
|
+
serviceCashbackRate: 0.03, // 3% cashback
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* BashCash system rules and limits
|
|
59
|
+
*/
|
|
60
|
+
export const BASHCASH_CONFIG = {
|
|
61
|
+
// Referral bonuses
|
|
62
|
+
referralBonusRate: 0.10, // 10% of referee's first purchase
|
|
63
|
+
maxReferralCredits: 10000, // $100 cap on referral bonuses
|
|
64
|
+
// Credit lifecycle
|
|
65
|
+
creditExpirationMonths: 12, // Credits expire after 12 months
|
|
66
|
+
// Redemption rules
|
|
67
|
+
minimumRedemption: 100, // $1 minimum redemption (100 credits)
|
|
68
|
+
membershipRedemptionCap: 0.50, // 50% max BashCash for membership fees
|
|
69
|
+
};
|
|
70
|
+
// ============================================================================
|
|
71
|
+
// SCOUT/AGENT REFERRAL PROGRAM
|
|
72
|
+
// ============================================================================
|
|
73
|
+
/**
|
|
74
|
+
* Scout program configuration for service provider referrals
|
|
75
|
+
*/
|
|
76
|
+
export const SCOUT_PROGRAM_CONFIG = {
|
|
77
|
+
creditsPerProfile: 75, // 75 credits per service profile created
|
|
78
|
+
maxProfilesPerScout: 3, // Max 3 profiles per scout
|
|
79
|
+
scoutCommissionRate: 0.03, // 3% commission on completed bookings
|
|
80
|
+
agentCommissionRate: 0.06, // 6% commission (upgraded status)
|
|
81
|
+
agentThreshold: 5, // 5+ service profiles = Agent status
|
|
82
|
+
};
|
|
83
|
+
// ============================================================================
|
|
84
|
+
// SECURITY & ACCOUNT PROTECTION
|
|
85
|
+
// ============================================================================
|
|
86
|
+
/**
|
|
87
|
+
* Security configuration for account protection and rate limiting
|
|
88
|
+
*/
|
|
89
|
+
export const SECURITY_CONFIG = {
|
|
90
|
+
// Failed login tracking
|
|
91
|
+
maxFailedLoginAttempts: 5, // Lock account after 5 failed attempts
|
|
92
|
+
lockoutDurationMinutes: 30, // Lock account for 30 minutes
|
|
93
|
+
trackingWindowMinutes: 15, // Track attempts within 15-minute window
|
|
94
|
+
suspiciousActivityThreshold: 3, // Alert if 3+ accounts locked from same IP
|
|
95
|
+
// Geofencing
|
|
96
|
+
geofenceDefaultRadiusFeet: 500, // Default geofence radius (feet)
|
|
97
|
+
geofenceCheckIntervalMs: 60000, // Check geofence every 60 seconds
|
|
98
|
+
};
|
|
99
|
+
// ============================================================================
|
|
100
|
+
// PLATFORM FEES & PRICING
|
|
101
|
+
// ============================================================================
|
|
102
|
+
/**
|
|
103
|
+
* Platform fee structure for Bash Events (tickets/donations)
|
|
104
|
+
* All amounts in CENTS to align with Stripe
|
|
105
|
+
*/
|
|
106
|
+
export const BASH_EVENT_FEES = {
|
|
107
|
+
Basic: {
|
|
108
|
+
percent: 0.10, // 10%
|
|
109
|
+
minimumCents: 50, // $0.50 minimum
|
|
110
|
+
capCents: 25000, // $250 cap
|
|
111
|
+
},
|
|
112
|
+
Creator: {
|
|
113
|
+
percent: 0.06, // 6% (40% discount)
|
|
114
|
+
minimumCents: 50, // $0.50 minimum
|
|
115
|
+
capCents: 15000, // $150 cap
|
|
116
|
+
},
|
|
117
|
+
Pro: {
|
|
118
|
+
percent: 0.08, // 8% (20% discount)
|
|
119
|
+
minimumCents: 50, // $0.50 minimum
|
|
120
|
+
capCents: 20000, // $200 cap
|
|
121
|
+
},
|
|
122
|
+
Elite: {
|
|
123
|
+
percent: 0.04, // 4% (60% discount)
|
|
124
|
+
minimumCents: 50, // $0.50 minimum
|
|
125
|
+
capCents: 10000, // $100 cap
|
|
126
|
+
},
|
|
127
|
+
Legend: {
|
|
128
|
+
percent: 0.02, // 2% (80% discount)
|
|
129
|
+
minimumCents: 50, // $0.50 minimum
|
|
130
|
+
capCents: 5000, // $50 cap
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Platform fee structure for Service Bookings (Allies/Patrons)
|
|
135
|
+
* All amounts in CENTS to align with Stripe
|
|
136
|
+
*/
|
|
137
|
+
export const SERVICE_BOOKING_FEES = {
|
|
138
|
+
Basic: {
|
|
139
|
+
percent: 0.15, // 15%
|
|
140
|
+
capCents: 37500, // $375 cap
|
|
141
|
+
},
|
|
142
|
+
Creator: {
|
|
143
|
+
percent: 0.09, // 9% (40% discount)
|
|
144
|
+
capCents: 22500, // $225 cap
|
|
145
|
+
},
|
|
146
|
+
Pro: {
|
|
147
|
+
percent: 0.12, // 12% (20% discount)
|
|
148
|
+
capCents: 30000, // $300 cap
|
|
149
|
+
},
|
|
150
|
+
Elite: {
|
|
151
|
+
percent: 0.06, // 6% (60% discount)
|
|
152
|
+
capCents: 15000, // $150 cap
|
|
153
|
+
},
|
|
154
|
+
Legend: {
|
|
155
|
+
percent: 0.05, // 5% (67% discount, sustainable floor)
|
|
156
|
+
capCents: 7500, // $75 cap
|
|
157
|
+
},
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Platform fee structure for Partner Payments (Vendors/Exhibitors/Sponsors)
|
|
161
|
+
* All amounts in CENTS to align with Stripe
|
|
162
|
+
*/
|
|
163
|
+
export const PARTNER_PAYMENT_FEES = {
|
|
164
|
+
Basic: {
|
|
165
|
+
percent: 0.08, // 8%
|
|
166
|
+
capCents: 20000, // $200 cap
|
|
167
|
+
},
|
|
168
|
+
Creator: {
|
|
169
|
+
percent: 0.05, // 5% (37.5% discount, sustainable floor)
|
|
170
|
+
capCents: 12500, // $125 cap
|
|
171
|
+
},
|
|
172
|
+
Pro: {
|
|
173
|
+
percent: 0.06, // 6% (25% discount)
|
|
174
|
+
capCents: 15000, // $150 cap
|
|
175
|
+
},
|
|
176
|
+
Elite: {
|
|
177
|
+
percent: 0.05, // 5% (same as Creator, sustainable floor)
|
|
178
|
+
capCents: 7500, // $75 cap
|
|
179
|
+
},
|
|
180
|
+
Legend: {
|
|
181
|
+
percent: 0.05, // 5% (same as Creator/Elite, sustainable floor)
|
|
182
|
+
capCents: 7500, // $75 cap
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* General platform pricing rules
|
|
187
|
+
*/
|
|
188
|
+
export const PLATFORM_PRICING_CONFIG = {
|
|
189
|
+
// Ticket pricing
|
|
190
|
+
minimumTicketPriceCents: 500, // $5 minimum ticket price (quality signal)
|
|
191
|
+
minimumPlatformFeeCents: 50, // $0.50 minimum platform fee (covers Stripe)
|
|
192
|
+
// Membership trial
|
|
193
|
+
creatorTrialDays: 30, // 30-day free trial for Creator tier
|
|
194
|
+
};
|
|
195
|
+
// Legacy export for backward compatibility with existing API code
|
|
196
|
+
export const CREATOR_TIER_TRIAL_DAYS = PLATFORM_PRICING_CONFIG.creatorTrialDays;
|
|
197
|
+
// ============================================================================
|
|
198
|
+
// PLATFORM FEE CALCULATION UTILITIES
|
|
199
|
+
// ============================================================================
|
|
200
|
+
/**
|
|
201
|
+
* Calculate platform fee for a Bash Event (ticket/donation)
|
|
202
|
+
* @param amountCents - Transaction amount in cents
|
|
203
|
+
* @param membershipTier - User's membership tier
|
|
204
|
+
* @returns Platform fee in cents
|
|
205
|
+
*/
|
|
206
|
+
export function calculateBashEventFee(amountCents, membershipTier) {
|
|
207
|
+
const config = BASH_EVENT_FEES[membershipTier];
|
|
208
|
+
// Calculate percentage-based fee
|
|
209
|
+
let fee = Math.floor(amountCents * config.percent);
|
|
210
|
+
// Apply minimum fee
|
|
211
|
+
fee = Math.max(fee, config.minimumCents);
|
|
212
|
+
// Apply cap
|
|
213
|
+
fee = Math.min(fee, config.capCents);
|
|
214
|
+
return fee;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Calculate platform fee for a Service Booking
|
|
218
|
+
* @param amountCents - Transaction amount in cents
|
|
219
|
+
* @param membershipTier - User's membership tier
|
|
220
|
+
* @returns Platform fee in cents
|
|
221
|
+
*/
|
|
222
|
+
export function calculateServiceBookingFee(amountCents, membershipTier) {
|
|
223
|
+
const config = SERVICE_BOOKING_FEES[membershipTier];
|
|
224
|
+
// Calculate percentage-based fee
|
|
225
|
+
let fee = Math.floor(amountCents * config.percent);
|
|
226
|
+
// Apply cap
|
|
227
|
+
fee = Math.min(fee, config.capCents);
|
|
228
|
+
return fee;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Calculate platform fee for a Partner Payment
|
|
232
|
+
* @param amountCents - Transaction amount in cents
|
|
233
|
+
* @param membershipTier - User's membership tier
|
|
234
|
+
* @returns Platform fee in cents
|
|
235
|
+
*/
|
|
236
|
+
export function calculatePartnerPaymentFee(amountCents, membershipTier) {
|
|
237
|
+
const config = PARTNER_PAYMENT_FEES[membershipTier];
|
|
238
|
+
// Calculate percentage-based fee
|
|
239
|
+
let fee = Math.floor(amountCents * config.percent);
|
|
240
|
+
// Apply cap
|
|
241
|
+
fee = Math.min(fee, config.capCents);
|
|
242
|
+
return fee;
|
|
243
|
+
}
|
|
244
|
+
// ============================================================================
|
|
245
|
+
// MEMBERSHIP TIER LIMITS & RULES
|
|
246
|
+
// ============================================================================
|
|
247
|
+
/**
|
|
248
|
+
* Comprehensive limits and rules per membership tier
|
|
249
|
+
* Defines what each tier can and cannot do on the platform
|
|
250
|
+
*/
|
|
251
|
+
export const MEMBERSHIP_LIMITS = {
|
|
252
|
+
Basic: {
|
|
253
|
+
// Event Creation
|
|
254
|
+
canCreateEvents: true,
|
|
255
|
+
minimumTicketPriceCents: 500, // $5 minimum
|
|
256
|
+
maxEventsPerMonth: -1, // Unlimited
|
|
257
|
+
featuredEventsPerMonth: 0, // Must pay
|
|
258
|
+
// Analytics & Insights
|
|
259
|
+
analyticsAccess: false,
|
|
260
|
+
advancedAnalytics: false,
|
|
261
|
+
// Service Provider Features
|
|
262
|
+
vendorDirectoryAccess: false,
|
|
263
|
+
maxServiceListings: 0,
|
|
264
|
+
// Monetization Tools
|
|
265
|
+
canCreatePromoCodes: false,
|
|
266
|
+
canSetCustomPricing: false,
|
|
267
|
+
// Platform Perks
|
|
268
|
+
prioritySearchPlacement: false,
|
|
269
|
+
homepageVisibility: false,
|
|
270
|
+
tierBadgeDisplay: false,
|
|
271
|
+
// Support & Access
|
|
272
|
+
prioritySupport: false,
|
|
273
|
+
conciergeSupport: false,
|
|
274
|
+
betaFeatureAccess: false,
|
|
275
|
+
// Exclusive Access
|
|
276
|
+
accessExclusiveEvents: false,
|
|
277
|
+
bashSponsoredInvites: false,
|
|
278
|
+
networkingMixers: false,
|
|
279
|
+
// Business Tools
|
|
280
|
+
advancedMonetization: false,
|
|
281
|
+
marketingCampaigns: false,
|
|
282
|
+
leadGeneration: false,
|
|
283
|
+
},
|
|
284
|
+
Creator: {
|
|
285
|
+
// Event Creation
|
|
286
|
+
canCreateEvents: true,
|
|
287
|
+
minimumTicketPriceCents: null, // No minimum!
|
|
288
|
+
maxEventsPerMonth: -1, // Unlimited
|
|
289
|
+
featuredEventsPerMonth: 0, // Must pay (but eligible)
|
|
290
|
+
// Analytics & Insights
|
|
291
|
+
analyticsAccess: false,
|
|
292
|
+
advancedAnalytics: false,
|
|
293
|
+
// Service Provider Features
|
|
294
|
+
vendorDirectoryAccess: false,
|
|
295
|
+
maxServiceListings: 0,
|
|
296
|
+
// Monetization Tools
|
|
297
|
+
canCreatePromoCodes: true, // ✅
|
|
298
|
+
canSetCustomPricing: true, // ✅
|
|
299
|
+
// Platform Perks
|
|
300
|
+
prioritySearchPlacement: false,
|
|
301
|
+
homepageVisibility: false,
|
|
302
|
+
tierBadgeDisplay: false,
|
|
303
|
+
// Support & Access
|
|
304
|
+
prioritySupport: false,
|
|
305
|
+
conciergeSupport: false,
|
|
306
|
+
betaFeatureAccess: true, // ✅ Early beta access
|
|
307
|
+
// Exclusive Access
|
|
308
|
+
accessExclusiveEvents: true, // ✅ Creator-only events
|
|
309
|
+
bashSponsoredInvites: false,
|
|
310
|
+
networkingMixers: false,
|
|
311
|
+
// Business Tools
|
|
312
|
+
advancedMonetization: false,
|
|
313
|
+
marketingCampaigns: false,
|
|
314
|
+
leadGeneration: false,
|
|
315
|
+
},
|
|
316
|
+
Pro: {
|
|
317
|
+
// Event Creation
|
|
318
|
+
canCreateEvents: true,
|
|
319
|
+
minimumTicketPriceCents: null, // No minimum
|
|
320
|
+
maxEventsPerMonth: -1, // Unlimited
|
|
321
|
+
featuredEventsPerMonth: 1, // ✅ 1 free/month
|
|
322
|
+
// Analytics & Insights
|
|
323
|
+
analyticsAccess: true, // ✅ Basic analytics
|
|
324
|
+
advancedAnalytics: false,
|
|
325
|
+
// Service Provider Features
|
|
326
|
+
vendorDirectoryAccess: true, // ✅ Can list services
|
|
327
|
+
maxServiceListings: 3, // 3 service listings
|
|
328
|
+
// Monetization Tools
|
|
329
|
+
canCreatePromoCodes: true,
|
|
330
|
+
canSetCustomPricing: true,
|
|
331
|
+
// Platform Perks
|
|
332
|
+
prioritySearchPlacement: true, // ✅ Priority placement
|
|
333
|
+
homepageVisibility: false,
|
|
334
|
+
tierBadgeDisplay: true, // ✅ Show Pro badge
|
|
335
|
+
// Support & Access
|
|
336
|
+
prioritySupport: false,
|
|
337
|
+
conciergeSupport: false,
|
|
338
|
+
betaFeatureAccess: true,
|
|
339
|
+
// Exclusive Access
|
|
340
|
+
accessExclusiveEvents: true,
|
|
341
|
+
bashSponsoredInvites: false,
|
|
342
|
+
networkingMixers: false,
|
|
343
|
+
// Business Tools
|
|
344
|
+
advancedMonetization: false,
|
|
345
|
+
marketingCampaigns: false,
|
|
346
|
+
leadGeneration: false,
|
|
347
|
+
},
|
|
348
|
+
Elite: {
|
|
349
|
+
// Event Creation
|
|
350
|
+
canCreateEvents: true,
|
|
351
|
+
minimumTicketPriceCents: null, // No minimum
|
|
352
|
+
maxEventsPerMonth: -1, // Unlimited
|
|
353
|
+
featuredEventsPerMonth: 3, // ✅ 3 free/month
|
|
354
|
+
// Analytics & Insights
|
|
355
|
+
analyticsAccess: true,
|
|
356
|
+
advancedAnalytics: true, // ✅ Advanced analytics
|
|
357
|
+
// Service Provider Features
|
|
358
|
+
vendorDirectoryAccess: true,
|
|
359
|
+
maxServiceListings: 10, // 10 service listings
|
|
360
|
+
// Monetization Tools
|
|
361
|
+
canCreatePromoCodes: true,
|
|
362
|
+
canSetCustomPricing: true,
|
|
363
|
+
// Platform Perks
|
|
364
|
+
prioritySearchPlacement: true,
|
|
365
|
+
homepageVisibility: true, // ✅ Homepage featured
|
|
366
|
+
tierBadgeDisplay: true, // ✅ Gold Elite badge
|
|
367
|
+
// Support & Access
|
|
368
|
+
prioritySupport: true, // ✅ Priority support
|
|
369
|
+
conciergeSupport: true, // ✅ Concierge service
|
|
370
|
+
betaFeatureAccess: true,
|
|
371
|
+
// Exclusive Access
|
|
372
|
+
accessExclusiveEvents: true, // ✅ Elite-only events
|
|
373
|
+
bashSponsoredInvites: true, // ✅ Free Bash invites
|
|
374
|
+
networkingMixers: false,
|
|
375
|
+
// Business Tools
|
|
376
|
+
advancedMonetization: true, // ✅ Revenue tools
|
|
377
|
+
marketingCampaigns: true, // ✅ Email campaigns
|
|
378
|
+
leadGeneration: true, // ✅ Lead capture
|
|
379
|
+
},
|
|
380
|
+
Legend: {
|
|
381
|
+
// Event Creation
|
|
382
|
+
canCreateEvents: true,
|
|
383
|
+
minimumTicketPriceCents: null, // No minimum
|
|
384
|
+
maxEventsPerMonth: -1, // Unlimited
|
|
385
|
+
featuredEventsPerMonth: -1, // ✅ Unlimited featured events!
|
|
386
|
+
// Analytics & Insights
|
|
387
|
+
analyticsAccess: true,
|
|
388
|
+
advancedAnalytics: true,
|
|
389
|
+
// Service Provider Features
|
|
390
|
+
vendorDirectoryAccess: true,
|
|
391
|
+
maxServiceListings: -1, // ✅ Unlimited services
|
|
392
|
+
// Monetization Tools
|
|
393
|
+
canCreatePromoCodes: true,
|
|
394
|
+
canSetCustomPricing: true,
|
|
395
|
+
// Platform Perks
|
|
396
|
+
prioritySearchPlacement: true,
|
|
397
|
+
homepageVisibility: true, // ✅ Homepage rotation
|
|
398
|
+
tierBadgeDisplay: true, // ✅ Platinum Legend badge
|
|
399
|
+
// Support & Access
|
|
400
|
+
prioritySupport: true,
|
|
401
|
+
conciergeSupport: true,
|
|
402
|
+
betaFeatureAccess: true,
|
|
403
|
+
// Exclusive Access
|
|
404
|
+
accessExclusiveEvents: true, // ✅ All exclusive events
|
|
405
|
+
bashSponsoredInvites: true,
|
|
406
|
+
networkingMixers: true, // ✅ Exclusive networking
|
|
407
|
+
// Business Tools
|
|
408
|
+
advancedMonetization: true,
|
|
409
|
+
marketingCampaigns: true,
|
|
410
|
+
leadGeneration: true,
|
|
411
|
+
},
|
|
412
|
+
};
|
|
413
|
+
/**
|
|
414
|
+
* Check if a user has access to a specific feature based on their tier
|
|
415
|
+
* @param userTier - User's membership tier
|
|
416
|
+
* @param feature - Feature to check (key from MEMBERSHIP_LIMITS)
|
|
417
|
+
* @returns true if user has access
|
|
418
|
+
*/
|
|
419
|
+
export function hasFeatureLimit(userTier, feature) {
|
|
420
|
+
return Boolean(MEMBERSHIP_LIMITS[userTier][feature]);
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Get the limit value for a specific feature
|
|
424
|
+
* @param userTier - User's membership tier
|
|
425
|
+
* @param limit - Limit to check (e.g., 'maxEventsPerMonth')
|
|
426
|
+
* @returns Limit value (-1 = unlimited, 0 = none, positive number = limit)
|
|
427
|
+
*/
|
|
428
|
+
export function getFeatureLimit(userTier, limit) {
|
|
429
|
+
return MEMBERSHIP_LIMITS[userTier][limit];
|
|
430
|
+
}
|
|
15
431
|
export const MEMBERSHIP_FEATURES = {
|
|
16
432
|
// Core Creator features
|
|
17
433
|
NO_MINIMUM_TICKET_PRICE: 'no_minimum_ticket_price',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"membershipDefinitions.js","sourceRoot":"","sources":["../src/membershipDefinitions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"membershipDefinitions.js","sourceRoot":"","sources":["../src/membershipDefinitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,10 @@ export declare function calculateDiscountFromPromoCode(totalInDollars: number, p
|
|
|
14
14
|
export declare function calculateTotalPriceWithoutTax(ticketTiers: TicketTier[], ticketList: Map<string, NumberOfTicketsForDate[]>): number;
|
|
15
15
|
export declare function convertCentsToDollars(price: number | undefined | null): number;
|
|
16
16
|
export declare function convertDollarsToCents(price: number | undefined | null): number;
|
|
17
|
+
/**
|
|
18
|
+
* Legacy function - calculates basic Bash fee without membership tier
|
|
19
|
+
* @deprecated Use calculateBashAppFeeWithMembershipDiscount instead
|
|
20
|
+
*/
|
|
17
21
|
export declare function calculateBashAppFee(total: number): number;
|
|
18
22
|
/**
|
|
19
23
|
* Calculate platform fee for bash tickets/donations with membership tier discounts and caps
|
|
@@ -51,8 +55,8 @@ export type VenuePricingPlanMap = {
|
|
|
51
55
|
* Venue pricing plan options
|
|
52
56
|
* Moved from venueUtils.ts for centralization
|
|
53
57
|
*
|
|
54
|
-
* Note: Uses
|
|
55
|
-
* Actual fees may be lower based on membership tier (see
|
|
58
|
+
* Note: Uses Basic tier service booking fee (15%) for percentage-based plan.
|
|
59
|
+
* Actual fees may be lower based on membership tier (see SERVICE_BOOKING_FEES)
|
|
56
60
|
*/
|
|
57
61
|
export declare const VENUE_PRICING_PLAN_DATA: VenuePricingPlanMap;
|
|
58
62
|
//# sourceMappingURL=paymentUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paymentUtils.d.ts","sourceRoot":"","sources":["../../src/utils/paymentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"paymentUtils.d.ts","sourceRoot":"","sources":["../../src/utils/paymentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAM5H,OAAO,EACL,sBAAsB,EAEvB,MAAM,gBAAgB,CAAC;AAExB;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,kBAAkB,GAAG,SAAS,GACxC,MAAM,CAeR;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,UAAU,EAAE,EACzB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAC,GAChD,MAAM,CASR;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAC/B,MAAM,CAKR;AACD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAC/B,MAAM,CAKR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,yCAAyC,CACvD,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,GACrC,MAAM,CAkBR;AAED;;;;;GAKG;AACH,wBAAgB,yCAAyC,CACvD,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,GACrC,MAAM,CAeR;AAED;;;;;;GAMG;AACH,wBAAgB,yCAAyC,CACvD,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,GACrC,MAAM,CAeR;AAMD,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;KAC/B,GAAG,IAAI,sBAAsB,GAAG,oBAAoB;CACtD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,mBAe5B,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { VenuePricingPlan as VenuePricingPlanOption } from "@prisma/client";
|
|
2
|
-
import {
|
|
2
|
+
import { BASH_EVENT_FEES, SERVICE_BOOKING_FEES, PARTNER_PAYMENT_FEES, } from "../membershipDefinitions";
|
|
3
|
+
import { PRICE_DOLLARS_AND_CENTS_RATIO, } from "../definitions";
|
|
3
4
|
/**
|
|
4
5
|
* Returns the amount of discount in dollars
|
|
5
6
|
* @param totalInDollars
|
|
@@ -45,75 +46,13 @@ export function convertDollarsToCents(price) {
|
|
|
45
46
|
}
|
|
46
47
|
return price * PRICE_DOLLARS_AND_CENTS_RATIO;
|
|
47
48
|
}
|
|
48
|
-
export function calculateBashAppFee(total) {
|
|
49
|
-
return parseFloat((total * BASH_FEE_PERCENTAGE).toFixed(2));
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Bash ticket/donation fee percentages by membership tier
|
|
53
|
-
* Imported from definitions.ts
|
|
54
|
-
*/
|
|
55
|
-
const BASH_FEE_PERCENTAGES = {
|
|
56
|
-
Basic: BASH_FEE_BASIC,
|
|
57
|
-
Pro: BASH_FEE_PRO,
|
|
58
|
-
Creator: BASH_FEE_CREATOR,
|
|
59
|
-
Elite: BASH_FEE_ELITE,
|
|
60
|
-
Legend: BASH_FEE_LEGEND,
|
|
61
|
-
};
|
|
62
|
-
/**
|
|
63
|
-
* Service booking fee percentages by membership tier (Allies, Patrons)
|
|
64
|
-
* Imported from definitions.ts
|
|
65
|
-
*/
|
|
66
|
-
const SERVICE_FEE_PERCENTAGES = {
|
|
67
|
-
Basic: SERVICE_FEE_BASIC,
|
|
68
|
-
Pro: SERVICE_FEE_PRO,
|
|
69
|
-
Creator: SERVICE_FEE_CREATOR,
|
|
70
|
-
Elite: SERVICE_FEE_ELITE,
|
|
71
|
-
Legend: SERVICE_FEE_LEGEND,
|
|
72
|
-
};
|
|
73
|
-
/**
|
|
74
|
-
* Bash ticket/donation fee caps by membership tier (in cents)
|
|
75
|
-
* Imported from definitions.ts
|
|
76
|
-
*/
|
|
77
|
-
const BASH_FEE_CAPS = {
|
|
78
|
-
Basic: BASH_FEE_CAP_BASIC,
|
|
79
|
-
Pro: BASH_FEE_CAP_PRO,
|
|
80
|
-
Creator: BASH_FEE_CAP_CREATOR,
|
|
81
|
-
Elite: BASH_FEE_CAP_ELITE,
|
|
82
|
-
Legend: BASH_FEE_CAP_LEGEND,
|
|
83
|
-
};
|
|
84
|
-
/**
|
|
85
|
-
* Service booking fee caps by membership tier (in cents)
|
|
86
|
-
* Imported from definitions.ts
|
|
87
|
-
*/
|
|
88
|
-
const SERVICE_FEE_CAPS = {
|
|
89
|
-
Basic: SERVICE_FEE_CAP_BASIC,
|
|
90
|
-
Pro: SERVICE_FEE_CAP_PRO,
|
|
91
|
-
Creator: SERVICE_FEE_CAP_CREATOR,
|
|
92
|
-
Elite: SERVICE_FEE_CAP_ELITE,
|
|
93
|
-
Legend: SERVICE_FEE_CAP_LEGEND,
|
|
94
|
-
};
|
|
95
|
-
/**
|
|
96
|
-
* Partner payment fee percentages by membership tier (Vendors, Exhibitors, Sponsors)
|
|
97
|
-
* Imported from definitions.ts
|
|
98
|
-
*/
|
|
99
|
-
const PARTNER_FEE_PERCENTAGES = {
|
|
100
|
-
Basic: PARTNER_FEE_BASIC,
|
|
101
|
-
Pro: PARTNER_FEE_PRO,
|
|
102
|
-
Creator: PARTNER_FEE_CREATOR,
|
|
103
|
-
Elite: PARTNER_FEE_ELITE,
|
|
104
|
-
Legend: PARTNER_FEE_LEGEND,
|
|
105
|
-
};
|
|
106
49
|
/**
|
|
107
|
-
*
|
|
108
|
-
*
|
|
50
|
+
* Legacy function - calculates basic Bash fee without membership tier
|
|
51
|
+
* @deprecated Use calculateBashAppFeeWithMembershipDiscount instead
|
|
109
52
|
*/
|
|
110
|
-
|
|
111
|
-
Basic
|
|
112
|
-
|
|
113
|
-
Creator: PARTNER_FEE_CAP_CREATOR,
|
|
114
|
-
Elite: PARTNER_FEE_CAP_ELITE,
|
|
115
|
-
Legend: PARTNER_FEE_CAP_LEGEND,
|
|
116
|
-
};
|
|
53
|
+
export function calculateBashAppFee(total) {
|
|
54
|
+
return parseFloat((total * BASH_EVENT_FEES.Basic.percent).toFixed(2));
|
|
55
|
+
}
|
|
117
56
|
/**
|
|
118
57
|
* Calculate platform fee for bash tickets/donations with membership tier discounts and caps
|
|
119
58
|
* @param total - Transaction amount in cents
|
|
@@ -123,14 +62,16 @@ const PARTNER_FEE_CAPS = {
|
|
|
123
62
|
export function calculateBashAppFeeWithMembershipDiscount(total, membershipTier) {
|
|
124
63
|
// Default to Basic tier if no membership provided
|
|
125
64
|
const tier = membershipTier || 'Basic';
|
|
65
|
+
// Get fee config for this tier
|
|
66
|
+
const config = BASH_EVENT_FEES[tier];
|
|
126
67
|
// Calculate fee based on membership tier percentage
|
|
127
|
-
|
|
128
|
-
|
|
68
|
+
let calculatedFee = total * config.percent;
|
|
69
|
+
// Apply minimum fee
|
|
70
|
+
calculatedFee = Math.max(calculatedFee, config.minimumCents);
|
|
129
71
|
// Apply cap for the membership tier
|
|
130
|
-
|
|
131
|
-
const cappedFee = Math.min(calculatedFee, feeCap);
|
|
72
|
+
calculatedFee = Math.min(calculatedFee, config.capCents);
|
|
132
73
|
// Round to 2 decimal places (cents precision)
|
|
133
|
-
return parseFloat(
|
|
74
|
+
return parseFloat(calculatedFee.toFixed(2));
|
|
134
75
|
}
|
|
135
76
|
/**
|
|
136
77
|
* Calculate platform fee for service bookings (Allies, Patrons) with membership tier discounts and caps
|
|
@@ -141,14 +82,14 @@ export function calculateBashAppFeeWithMembershipDiscount(total, membershipTier)
|
|
|
141
82
|
export function calculateServiceFeeWithMembershipDiscount(total, membershipTier) {
|
|
142
83
|
// Default to Basic tier if no membership provided
|
|
143
84
|
const tier = membershipTier || 'Basic';
|
|
85
|
+
// Get fee config for this tier
|
|
86
|
+
const config = SERVICE_BOOKING_FEES[tier];
|
|
144
87
|
// Calculate fee based on membership tier percentage
|
|
145
|
-
|
|
146
|
-
const calculatedFee = total * feePercentage;
|
|
88
|
+
let calculatedFee = total * config.percent;
|
|
147
89
|
// Apply cap for the membership tier
|
|
148
|
-
|
|
149
|
-
const cappedFee = Math.min(calculatedFee, feeCap);
|
|
90
|
+
calculatedFee = Math.min(calculatedFee, config.capCents);
|
|
150
91
|
// Round to 2 decimal places (cents precision)
|
|
151
|
-
return parseFloat(
|
|
92
|
+
return parseFloat(calculatedFee.toFixed(2));
|
|
152
93
|
}
|
|
153
94
|
/**
|
|
154
95
|
* Calculate platform fee for Partner payments (Vendors, Exhibitors, Sponsors) with membership tier discounts and caps
|
|
@@ -160,27 +101,27 @@ export function calculateServiceFeeWithMembershipDiscount(total, membershipTier)
|
|
|
160
101
|
export function calculatePartnerFeeWithMembershipDiscount(total, membershipTier) {
|
|
161
102
|
// Default to Basic tier if no membership provided
|
|
162
103
|
const tier = membershipTier || 'Basic';
|
|
104
|
+
// Get fee config for this tier
|
|
105
|
+
const config = PARTNER_PAYMENT_FEES[tier];
|
|
163
106
|
// Calculate fee based on membership tier percentage
|
|
164
|
-
|
|
165
|
-
const calculatedFee = total * feePercentage;
|
|
107
|
+
let calculatedFee = total * config.percent;
|
|
166
108
|
// Apply cap for the membership tier
|
|
167
|
-
|
|
168
|
-
const cappedFee = Math.min(calculatedFee, feeCap);
|
|
109
|
+
calculatedFee = Math.min(calculatedFee, config.capCents);
|
|
169
110
|
// Round to 2 decimal places (cents precision)
|
|
170
|
-
return parseFloat(
|
|
111
|
+
return parseFloat(calculatedFee.toFixed(2));
|
|
171
112
|
}
|
|
172
113
|
/**
|
|
173
114
|
* Venue pricing plan options
|
|
174
115
|
* Moved from venueUtils.ts for centralization
|
|
175
116
|
*
|
|
176
|
-
* Note: Uses
|
|
177
|
-
* Actual fees may be lower based on membership tier (see
|
|
117
|
+
* Note: Uses Basic tier service booking fee (15%) for percentage-based plan.
|
|
118
|
+
* Actual fees may be lower based on membership tier (see SERVICE_BOOKING_FEES)
|
|
178
119
|
*/
|
|
179
120
|
export const VENUE_PRICING_PLAN_DATA = {
|
|
180
121
|
[VenuePricingPlanOption.Percentage]: {
|
|
181
122
|
name: "Pay per booking",
|
|
182
123
|
description: "15% of each booking goes to Bash.",
|
|
183
|
-
percentageFee:
|
|
124
|
+
percentageFee: SERVICE_BOOKING_FEES.Basic.percent, // Use centralized constant (15%)
|
|
184
125
|
monthlyFee: 0.0,
|
|
185
126
|
flatFee: 0.0,
|
|
186
127
|
},
|