@bash-app/bash-common 30.95.0 → 30.97.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 +3 -36
- package/dist/definitions.d.ts.map +1 -1
- package/dist/definitions.js +1 -45
- package/dist/definitions.js.map +1 -1
- package/dist/extendedSchemas.d.ts +82 -1
- package/dist/extendedSchemas.d.ts.map +1 -1
- package/dist/extendedSchemas.js +11 -0
- package/dist/extendedSchemas.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.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/bashCashPaymentUtils.d.ts +72 -0
- package/dist/utils/bashCashPaymentUtils.d.ts.map +1 -0
- package/dist/utils/bashCashPaymentUtils.js +115 -0
- package/dist/utils/bashCashPaymentUtils.js.map +1 -0
- 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/apiServiceBookingApiUtils.d.ts.map +1 -1
- package/dist/utils/service/apiServiceBookingApiUtils.js +1 -0
- package/dist/utils/service/apiServiceBookingApiUtils.js.map +1 -1
- package/dist/utils/service/frontendServiceBookingUtils.d.ts +2 -1
- package/dist/utils/service/frontendServiceBookingUtils.d.ts.map +1 -1
- package/dist/utils/service/frontendServiceBookingUtils.js +4 -3
- package/dist/utils/service/frontendServiceBookingUtils.js.map +1 -1
- package/package.json +1 -1
- package/prisma/schema.prisma +44 -5
- package/src/definitions.ts +3 -54
- package/src/extendedSchemas.ts +18 -0
- package/src/index.ts +1 -0
- package/src/membershipDefinitions.ts +549 -0
- package/src/utils/bashCashPaymentUtils.ts +146 -0
- package/src/utils/paymentUtils.ts +34 -124
- package/src/utils/service/apiServiceBookingApiUtils.ts +1 -0
- package/src/utils/service/frontendServiceBookingUtils.ts +5 -3
|
@@ -90,7 +90,145 @@ export declare const MEMBERSHIP_PRICING: {
|
|
|
90
90
|
yearly: number;
|
|
91
91
|
};
|
|
92
92
|
};
|
|
93
|
+
export declare const MEMBERSHIP_MONTHLY_PRICE_CENTS: Record<MembershipTier, number>;
|
|
93
94
|
export declare const MEMBERSHIP_TIER_HIERARCHY: MembershipTier[];
|
|
95
|
+
/**
|
|
96
|
+
* BashCash rewards per membership tier
|
|
97
|
+
* All amounts in CENTS (1 credit = 1 cent = $0.01)
|
|
98
|
+
*/
|
|
99
|
+
export declare const BASHCASH_REWARDS: Record<MembershipTier, {
|
|
100
|
+
monthlyCredits: number;
|
|
101
|
+
ticketCashbackRate: number;
|
|
102
|
+
serviceCashbackRate: number;
|
|
103
|
+
}>;
|
|
104
|
+
/**
|
|
105
|
+
* BashCash system rules and limits
|
|
106
|
+
*/
|
|
107
|
+
export declare const BASHCASH_CONFIG: {
|
|
108
|
+
readonly referralBonusRate: 0.1;
|
|
109
|
+
readonly maxReferralCredits: 10000;
|
|
110
|
+
readonly creditExpirationMonths: 12;
|
|
111
|
+
readonly minimumRedemption: 100;
|
|
112
|
+
readonly membershipRedemptionCap: 0.5;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Scout program configuration for service provider referrals
|
|
116
|
+
*/
|
|
117
|
+
export declare const SCOUT_PROGRAM_CONFIG: {
|
|
118
|
+
readonly creditsPerProfile: 75;
|
|
119
|
+
readonly maxProfilesPerScout: 3;
|
|
120
|
+
readonly scoutCommissionRate: 0.03;
|
|
121
|
+
readonly agentCommissionRate: 0.06;
|
|
122
|
+
readonly agentThreshold: 5;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Security configuration for account protection and rate limiting
|
|
126
|
+
*/
|
|
127
|
+
export declare const SECURITY_CONFIG: {
|
|
128
|
+
readonly maxFailedLoginAttempts: 5;
|
|
129
|
+
readonly lockoutDurationMinutes: 30;
|
|
130
|
+
readonly trackingWindowMinutes: 15;
|
|
131
|
+
readonly suspiciousActivityThreshold: 3;
|
|
132
|
+
readonly geofenceDefaultRadiusFeet: 500;
|
|
133
|
+
readonly geofenceCheckIntervalMs: 60000;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* Platform fee structure for Bash Events (tickets/donations)
|
|
137
|
+
* All amounts in CENTS to align with Stripe
|
|
138
|
+
*/
|
|
139
|
+
export declare const BASH_EVENT_FEES: Record<MembershipTier, {
|
|
140
|
+
percent: number;
|
|
141
|
+
minimumCents: number;
|
|
142
|
+
capCents: number;
|
|
143
|
+
}>;
|
|
144
|
+
/**
|
|
145
|
+
* Platform fee structure for Service Bookings (Allies/Patrons)
|
|
146
|
+
* All amounts in CENTS to align with Stripe
|
|
147
|
+
*/
|
|
148
|
+
export declare const SERVICE_BOOKING_FEES: Record<MembershipTier, {
|
|
149
|
+
percent: number;
|
|
150
|
+
capCents: number;
|
|
151
|
+
}>;
|
|
152
|
+
/**
|
|
153
|
+
* Platform fee structure for Partner Payments (Vendors/Exhibitors/Sponsors)
|
|
154
|
+
* All amounts in CENTS to align with Stripe
|
|
155
|
+
*/
|
|
156
|
+
export declare const PARTNER_PAYMENT_FEES: Record<MembershipTier, {
|
|
157
|
+
percent: number;
|
|
158
|
+
capCents: number;
|
|
159
|
+
}>;
|
|
160
|
+
/**
|
|
161
|
+
* General platform pricing rules
|
|
162
|
+
*/
|
|
163
|
+
export declare const PLATFORM_PRICING_CONFIG: {
|
|
164
|
+
readonly minimumTicketPriceCents: 500;
|
|
165
|
+
readonly minimumPlatformFeeCents: 50;
|
|
166
|
+
readonly creatorTrialDays: 30;
|
|
167
|
+
};
|
|
168
|
+
export declare const CREATOR_TIER_TRIAL_DAYS: 30;
|
|
169
|
+
/**
|
|
170
|
+
* Calculate platform fee for a Bash Event (ticket/donation)
|
|
171
|
+
* @param amountCents - Transaction amount in cents
|
|
172
|
+
* @param membershipTier - User's membership tier
|
|
173
|
+
* @returns Platform fee in cents
|
|
174
|
+
*/
|
|
175
|
+
export declare function calculateBashEventFee(amountCents: number, membershipTier: MembershipTier): number;
|
|
176
|
+
/**
|
|
177
|
+
* Calculate platform fee for a Service Booking
|
|
178
|
+
* @param amountCents - Transaction amount in cents
|
|
179
|
+
* @param membershipTier - User's membership tier
|
|
180
|
+
* @returns Platform fee in cents
|
|
181
|
+
*/
|
|
182
|
+
export declare function calculateServiceBookingFee(amountCents: number, membershipTier: MembershipTier): number;
|
|
183
|
+
/**
|
|
184
|
+
* Calculate platform fee for a Partner Payment
|
|
185
|
+
* @param amountCents - Transaction amount in cents
|
|
186
|
+
* @param membershipTier - User's membership tier
|
|
187
|
+
* @returns Platform fee in cents
|
|
188
|
+
*/
|
|
189
|
+
export declare function calculatePartnerPaymentFee(amountCents: number, membershipTier: MembershipTier): number;
|
|
190
|
+
/**
|
|
191
|
+
* Comprehensive limits and rules per membership tier
|
|
192
|
+
* Defines what each tier can and cannot do on the platform
|
|
193
|
+
*/
|
|
194
|
+
export declare const MEMBERSHIP_LIMITS: Record<MembershipTier, {
|
|
195
|
+
canCreateEvents: boolean;
|
|
196
|
+
minimumTicketPriceCents: number | null;
|
|
197
|
+
maxEventsPerMonth: number;
|
|
198
|
+
featuredEventsPerMonth: number;
|
|
199
|
+
analyticsAccess: boolean;
|
|
200
|
+
advancedAnalytics: boolean;
|
|
201
|
+
vendorDirectoryAccess: boolean;
|
|
202
|
+
maxServiceListings: number;
|
|
203
|
+
canCreatePromoCodes: boolean;
|
|
204
|
+
canSetCustomPricing: boolean;
|
|
205
|
+
prioritySearchPlacement: boolean;
|
|
206
|
+
homepageVisibility: boolean;
|
|
207
|
+
tierBadgeDisplay: boolean;
|
|
208
|
+
prioritySupport: boolean;
|
|
209
|
+
conciergeSupport: boolean;
|
|
210
|
+
betaFeatureAccess: boolean;
|
|
211
|
+
accessExclusiveEvents: boolean;
|
|
212
|
+
bashSponsoredInvites: boolean;
|
|
213
|
+
networkingMixers: boolean;
|
|
214
|
+
advancedMonetization: boolean;
|
|
215
|
+
marketingCampaigns: boolean;
|
|
216
|
+
leadGeneration: boolean;
|
|
217
|
+
}>;
|
|
218
|
+
/**
|
|
219
|
+
* Check if a user has access to a specific feature based on their tier
|
|
220
|
+
* @param userTier - User's membership tier
|
|
221
|
+
* @param feature - Feature to check (key from MEMBERSHIP_LIMITS)
|
|
222
|
+
* @returns true if user has access
|
|
223
|
+
*/
|
|
224
|
+
export declare function hasFeatureLimit(userTier: MembershipTier, feature: keyof typeof MEMBERSHIP_LIMITS[MembershipTier]): boolean;
|
|
225
|
+
/**
|
|
226
|
+
* Get the limit value for a specific feature
|
|
227
|
+
* @param userTier - User's membership tier
|
|
228
|
+
* @param limit - Limit to check (e.g., 'maxEventsPerMonth')
|
|
229
|
+
* @returns Limit value (-1 = unlimited, 0 = none, positive number = limit)
|
|
230
|
+
*/
|
|
231
|
+
export declare function getFeatureLimit(userTier: MembershipTier, limit: keyof typeof MEMBERSHIP_LIMITS[MembershipTier]): number | boolean | null;
|
|
94
232
|
export declare const MEMBERSHIP_FEATURES: {
|
|
95
233
|
readonly NO_MINIMUM_TICKET_PRICE: "no_minimum_ticket_price";
|
|
96
234
|
readonly PROMO_CODES: "promo_codes";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"membershipDefinitions.d.ts","sourceRoot":"","sources":["../src/membershipDefinitions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAErF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC;AAE/D,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE;QACN,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,eAAe,EAAE,OAAO,CAAC;QACzB,qBAAqB,EAAE,OAAO,CAAC;QAC/B,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAGD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,cAAc,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,iCAAiC;IAChD,UAAU,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC7C,eAAe,EAAE,yBAAyB,CAAC;CAC5C;AAED,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;CAM9B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,cAAc,EAErD,CAAC;
|
|
1
|
+
{"version":3,"file":"membershipDefinitions.d.ts","sourceRoot":"","sources":["../src/membershipDefinitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|