@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.
@@ -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 SERVICE_FEE_PERCENTAGE (15% base rate) for percentage-based plan.
55
- * Actual fees may be lower based on membership tier (see SERVICE_FEE_BASIC, SERVICE_FEE_PRO, etc.)
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;AAC5H,OAAO,EAkCL,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,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AA0ED;;;;;GAKG;AACH,wBAAgB,yCAAyC,CACvD,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,GACrC,MAAM,CAcR;AAED;;;;;GAKG;AACH,wBAAgB,yCAAyC,CACvD,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,GACrC,MAAM,CAcR;AAED;;;;;;GAMG;AACH,wBAAgB,yCAAyC,CACvD,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,GACrC,MAAM,CAcR;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
+ {"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 { BASH_FEE_PERCENTAGE, SERVICE_FEE_PERCENTAGE, PARTNER_FEE_PERCENTAGE, BASH_FEE_BASIC, BASH_FEE_PRO, BASH_FEE_CREATOR, BASH_FEE_ELITE, BASH_FEE_LEGEND, SERVICE_FEE_BASIC, SERVICE_FEE_PRO, SERVICE_FEE_CREATOR, SERVICE_FEE_ELITE, SERVICE_FEE_LEGEND, PARTNER_FEE_BASIC, PARTNER_FEE_PRO, PARTNER_FEE_CREATOR, PARTNER_FEE_ELITE, PARTNER_FEE_LEGEND, BASH_FEE_CAP_BASIC, BASH_FEE_CAP_PRO, BASH_FEE_CAP_CREATOR, BASH_FEE_CAP_ELITE, BASH_FEE_CAP_LEGEND, SERVICE_FEE_CAP_BASIC, SERVICE_FEE_CAP_PRO, SERVICE_FEE_CAP_CREATOR, SERVICE_FEE_CAP_ELITE, SERVICE_FEE_CAP_LEGEND, PARTNER_FEE_CAP_BASIC, PARTNER_FEE_CAP_PRO, PARTNER_FEE_CAP_CREATOR, PARTNER_FEE_CAP_ELITE, PARTNER_FEE_CAP_LEGEND, PRICE_DOLLARS_AND_CENTS_RATIO, } from "../definitions";
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
- * Partner payment fee caps by membership tier (in cents)
108
- * Imported from definitions.ts
50
+ * Legacy function - calculates basic Bash fee without membership tier
51
+ * @deprecated Use calculateBashAppFeeWithMembershipDiscount instead
109
52
  */
110
- const PARTNER_FEE_CAPS = {
111
- Basic: PARTNER_FEE_CAP_BASIC,
112
- Pro: PARTNER_FEE_CAP_PRO,
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
- const feePercentage = BASH_FEE_PERCENTAGES[tier] || BASH_FEE_PERCENTAGE;
128
- const calculatedFee = total * feePercentage;
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
- const feeCap = BASH_FEE_CAPS[tier] || BASH_FEE_CAPS.Basic;
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(cappedFee.toFixed(2));
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
- const feePercentage = SERVICE_FEE_PERCENTAGES[tier] || SERVICE_FEE_PERCENTAGE;
146
- const calculatedFee = total * feePercentage;
88
+ let calculatedFee = total * config.percent;
147
89
  // Apply cap for the membership tier
148
- const feeCap = SERVICE_FEE_CAPS[tier] || SERVICE_FEE_CAPS.Basic;
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(cappedFee.toFixed(2));
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
- const feePercentage = PARTNER_FEE_PERCENTAGES[tier] || PARTNER_FEE_PERCENTAGE;
165
- const calculatedFee = total * feePercentage;
107
+ let calculatedFee = total * config.percent;
166
108
  // Apply cap for the membership tier
167
- const feeCap = PARTNER_FEE_CAPS[tier] || PARTNER_FEE_CAPS.Basic;
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(cappedFee.toFixed(2));
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 SERVICE_FEE_PERCENTAGE (15% base rate) for percentage-based plan.
177
- * Actual fees may be lower based on membership tier (see SERVICE_FEE_BASIC, SERVICE_FEE_PRO, etc.)
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: SERVICE_FEE_PERCENTAGE, // Use centralized constant (15%)
124
+ percentageFee: SERVICE_BOOKING_FEES.Basic.percent, // Use centralized constant (15%)
184
125
  monthlyFee: 0.0,
185
126
  flatFee: 0.0,
186
127
  },