@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
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BashCash Payment Utilities
|
|
3
|
+
* Handles calculations and conversions for BashCash payment system
|
|
4
|
+
*/
|
|
5
|
+
export declare const BASHCASH_TO_CENTS_RATE = 1;
|
|
6
|
+
export declare const CENTS_TO_BASHCASH_RATE = 1;
|
|
7
|
+
/**
|
|
8
|
+
* Convert USD cents to BashCash credits
|
|
9
|
+
* @param cents Amount in cents (e.g., 28750 = $287.50)
|
|
10
|
+
* @returns BashCash credits (e.g., 28750 credits)
|
|
11
|
+
*/
|
|
12
|
+
export declare function centsToBashCash(cents: number): number;
|
|
13
|
+
/**
|
|
14
|
+
* Convert BashCash credits to USD cents
|
|
15
|
+
* @param credits BashCash credits (e.g., 28750 credits)
|
|
16
|
+
* @returns Amount in cents (e.g., 28750 = $287.50)
|
|
17
|
+
*/
|
|
18
|
+
export declare function bashCashToCents(credits: number): number;
|
|
19
|
+
/**
|
|
20
|
+
* Format BashCash credits for display
|
|
21
|
+
* @param credits BashCash credits
|
|
22
|
+
* @returns Formatted string (e.g., "28,750 credits")
|
|
23
|
+
*/
|
|
24
|
+
export declare function formatBashCash(credits: number): string;
|
|
25
|
+
/**
|
|
26
|
+
* Format BashCash credits with USD equivalent
|
|
27
|
+
* @param credits BashCash credits
|
|
28
|
+
* @returns Formatted string (e.g., "28,750 credits ($287.50)")
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatBashCashWithUSD(credits: number): string;
|
|
31
|
+
/**
|
|
32
|
+
* Calculate maximum BashCash that can be used for a booking
|
|
33
|
+
* @param totalCents Total booking cost in cents
|
|
34
|
+
* @param userBalance User's BashCash balance in credits
|
|
35
|
+
* @returns Maximum BashCash credits that can be applied
|
|
36
|
+
*/
|
|
37
|
+
export declare function calculateMaxBashCashForBooking(totalCents: number, userBalance: number): number;
|
|
38
|
+
/**
|
|
39
|
+
* Calculate split payment amounts
|
|
40
|
+
* @param totalCents Total booking cost in cents
|
|
41
|
+
* @param bashCashToUse BashCash credits user wants to apply
|
|
42
|
+
* @returns Object with bashCashCents and stripeCents
|
|
43
|
+
*/
|
|
44
|
+
export declare function calculateSplitPayment(totalCents: number, bashCashToUse: number): {
|
|
45
|
+
bashCashCents: number;
|
|
46
|
+
stripeCents: number;
|
|
47
|
+
bashCashCredits: number;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Validate BashCash payment
|
|
51
|
+
* @param bashCashToUse BashCash credits to use
|
|
52
|
+
* @param userBalance User's current balance
|
|
53
|
+
* @param totalCents Total booking cost
|
|
54
|
+
* @returns Validation result
|
|
55
|
+
*/
|
|
56
|
+
export declare function validateBashCashPayment(bashCashToUse: number, userBalance: number, totalCents: number): {
|
|
57
|
+
valid: boolean;
|
|
58
|
+
errorMessage?: string;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Calculate BashCash cashback for a service booking (3%)
|
|
62
|
+
* @param amountCents Amount paid in cents
|
|
63
|
+
* @returns BashCash credits earned as cashback
|
|
64
|
+
*/
|
|
65
|
+
export declare function calculateServiceBookingCashback(amountCents: number): number;
|
|
66
|
+
/**
|
|
67
|
+
* Calculate BashCash cashback for a ticket purchase (5%)
|
|
68
|
+
* @param amountCents Amount paid in cents
|
|
69
|
+
* @returns BashCash credits earned as cashback
|
|
70
|
+
*/
|
|
71
|
+
export declare function calculateTicketCashback(amountCents: number): number;
|
|
72
|
+
//# sourceMappingURL=bashCashPaymentUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bashCashPaymentUtils.d.ts","sourceRoot":"","sources":["../../src/utils/bashCashPaymentUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,MAAM,CAIR;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB,CASA;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB;IACD,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAwBA;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG3E;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGnE"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BashCash Payment Utilities
|
|
3
|
+
* Handles calculations and conversions for BashCash payment system
|
|
4
|
+
*/
|
|
5
|
+
// 1 BashCash credit = 1 cent = $0.01
|
|
6
|
+
export const BASHCASH_TO_CENTS_RATE = 1;
|
|
7
|
+
export const CENTS_TO_BASHCASH_RATE = 1;
|
|
8
|
+
/**
|
|
9
|
+
* Convert USD cents to BashCash credits
|
|
10
|
+
* @param cents Amount in cents (e.g., 28750 = $287.50)
|
|
11
|
+
* @returns BashCash credits (e.g., 28750 credits)
|
|
12
|
+
*/
|
|
13
|
+
export function centsToBashCash(cents) {
|
|
14
|
+
return Math.floor(cents * CENTS_TO_BASHCASH_RATE);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Convert BashCash credits to USD cents
|
|
18
|
+
* @param credits BashCash credits (e.g., 28750 credits)
|
|
19
|
+
* @returns Amount in cents (e.g., 28750 = $287.50)
|
|
20
|
+
*/
|
|
21
|
+
export function bashCashToCents(credits) {
|
|
22
|
+
return Math.floor(credits * BASHCASH_TO_CENTS_RATE);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Format BashCash credits for display
|
|
26
|
+
* @param credits BashCash credits
|
|
27
|
+
* @returns Formatted string (e.g., "28,750 credits")
|
|
28
|
+
*/
|
|
29
|
+
export function formatBashCash(credits) {
|
|
30
|
+
return `${credits.toLocaleString('en-US')} credit${credits === 1 ? '' : 's'}`;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Format BashCash credits with USD equivalent
|
|
34
|
+
* @param credits BashCash credits
|
|
35
|
+
* @returns Formatted string (e.g., "28,750 credits ($287.50)")
|
|
36
|
+
*/
|
|
37
|
+
export function formatBashCashWithUSD(credits) {
|
|
38
|
+
const cents = bashCashToCents(credits);
|
|
39
|
+
const dollars = (cents / 100).toFixed(2);
|
|
40
|
+
return `${formatBashCash(credits)} ($${dollars})`;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Calculate maximum BashCash that can be used for a booking
|
|
44
|
+
* @param totalCents Total booking cost in cents
|
|
45
|
+
* @param userBalance User's BashCash balance in credits
|
|
46
|
+
* @returns Maximum BashCash credits that can be applied
|
|
47
|
+
*/
|
|
48
|
+
export function calculateMaxBashCashForBooking(totalCents, userBalance) {
|
|
49
|
+
// No cap on BashCash usage for service bookings (can pay 100% if they have enough)
|
|
50
|
+
const maxPossible = centsToBashCash(totalCents);
|
|
51
|
+
return Math.min(maxPossible, userBalance);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Calculate split payment amounts
|
|
55
|
+
* @param totalCents Total booking cost in cents
|
|
56
|
+
* @param bashCashToUse BashCash credits user wants to apply
|
|
57
|
+
* @returns Object with bashCashCents and stripeCents
|
|
58
|
+
*/
|
|
59
|
+
export function calculateSplitPayment(totalCents, bashCashToUse) {
|
|
60
|
+
const bashCashCents = bashCashToCents(bashCashToUse);
|
|
61
|
+
const stripeCents = Math.max(0, totalCents - bashCashCents);
|
|
62
|
+
return {
|
|
63
|
+
bashCashCents,
|
|
64
|
+
stripeCents,
|
|
65
|
+
bashCashCredits: bashCashToUse,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Validate BashCash payment
|
|
70
|
+
* @param bashCashToUse BashCash credits to use
|
|
71
|
+
* @param userBalance User's current balance
|
|
72
|
+
* @param totalCents Total booking cost
|
|
73
|
+
* @returns Validation result
|
|
74
|
+
*/
|
|
75
|
+
export function validateBashCashPayment(bashCashToUse, userBalance, totalCents) {
|
|
76
|
+
if (bashCashToUse < 0) {
|
|
77
|
+
return {
|
|
78
|
+
valid: false,
|
|
79
|
+
errorMessage: "BashCash amount cannot be negative",
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (bashCashToUse > userBalance) {
|
|
83
|
+
return {
|
|
84
|
+
valid: false,
|
|
85
|
+
errorMessage: `Insufficient BashCash balance. You have ${formatBashCash(userBalance)}, but tried to use ${formatBashCash(bashCashToUse)}.`,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
const bashCashCents = bashCashToCents(bashCashToUse);
|
|
89
|
+
if (bashCashCents > totalCents) {
|
|
90
|
+
return {
|
|
91
|
+
valid: false,
|
|
92
|
+
errorMessage: `BashCash amount ($${(bashCashCents / 100).toFixed(2)}) exceeds booking total ($${(totalCents / 100).toFixed(2)}).`,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
return { valid: true };
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Calculate BashCash cashback for a service booking (3%)
|
|
99
|
+
* @param amountCents Amount paid in cents
|
|
100
|
+
* @returns BashCash credits earned as cashback
|
|
101
|
+
*/
|
|
102
|
+
export function calculateServiceBookingCashback(amountCents) {
|
|
103
|
+
const CASHBACK_RATE = 0.03; // 3% for service bookings
|
|
104
|
+
return Math.floor((amountCents * CASHBACK_RATE));
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Calculate BashCash cashback for a ticket purchase (5%)
|
|
108
|
+
* @param amountCents Amount paid in cents
|
|
109
|
+
* @returns BashCash credits earned as cashback
|
|
110
|
+
*/
|
|
111
|
+
export function calculateTicketCashback(amountCents) {
|
|
112
|
+
const CASHBACK_RATE = 0.05; // 5% for ticket purchases
|
|
113
|
+
return Math.floor((amountCents * CASHBACK_RATE));
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=bashCashPaymentUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bashCashPaymentUtils.js","sourceRoot":"","sources":["../../src/utils/bashCashPaymentUtils.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
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paymentUtils.js","sourceRoot":"","sources":["../../src/utils/paymentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5H,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"paymentUtils.js","sourceRoot":"","sources":["../../src/utils/paymentUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiServiceBookingApiUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/service/apiServiceBookingApiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EAEzB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EAEf,oBAAoB,EACpB,iBAAiB,EAGjB,UAAU,EACX,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAEL,mCAAmC,EACnC,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,0BAA0B,EAC3B,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,yBAAyB;2BAG/B,wBAAwB;iCAGxB,wBAAwB;+BAGxB,wBAAwB;0BAGxB,wBAAwB;4BAGxB,wBAAwB;8BAGxB,wBAAwB;CACrB,CAAC;AAEX,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,yBAAyB,CAAC;AAE/E,wBAAgB,+BAA+B,CAC7C,aAAa,SAAS,qBAAqB,EAE3C,SAAS,EAAE,aAAa,EAAE,EAC1B,aAAa,EAAE,eAAe,EAAE,GAC/B,iBAAiB,EAAE,CAgBrB;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,2BAA2B,GACvC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAkCjC;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,iBAAiB,GACzB,mCAAmC,
|
|
1
|
+
{"version":3,"file":"apiServiceBookingApiUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/service/apiServiceBookingApiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EAEzB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EAEf,oBAAoB,EACpB,iBAAiB,EAGjB,UAAU,EACX,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAEL,mCAAmC,EACnC,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,0BAA0B,EAC3B,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,yBAAyB;2BAG/B,wBAAwB;iCAGxB,wBAAwB;+BAGxB,wBAAwB;0BAGxB,wBAAwB;4BAGxB,wBAAwB;8BAGxB,wBAAwB;CACrB,CAAC;AAEX,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,yBAAyB,CAAC;AAE/E,wBAAgB,+BAA+B,CAC7C,aAAa,SAAS,qBAAqB,EAE3C,SAAS,EAAE,aAAa,EAAE,EAC1B,aAAa,EAAE,eAAe,EAAE,GAC/B,iBAAiB,EAAE,CAgBrB;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,2BAA2B,GACvC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAkCjC;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,iBAAiB,GACzB,mCAAmC,CAiDrC;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,uBAAuB,GAC9B,qBAAqB,CAoBvB;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,mCAAmC,GAC/C,yBAAyB,EAAE,CAkC7B;AACD,MAAM,WAAW,sCAAsC;IACrD,WAAW,EAAE,kBAAkB,CAAC;IAChC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,mCAAmC,CAAC;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,kCAAkC,CAAC,EACjD,WAAW,EACX,MAAM,EACN,QAAQ,EACR,WAAW,EACX,iBAAyB,EACzB,WAAmB,GACpB,EAAE,sCAAsC,GAAG,0BAA0B,CA2BrE"}
|
|
@@ -93,6 +93,7 @@ export function serviceGetPriceToBookFromBooking(service, booking) {
|
|
|
93
93
|
daysTotalBeforeTaxesCents: booking.daysTotalATBCents,
|
|
94
94
|
subtotalBeforeTaxesCents: booking.subtotalATBCents,
|
|
95
95
|
totalBeforeTaxesCents: booking.totalATBCents,
|
|
96
|
+
totalWithFees: booking.totalATBCents, // Same as totalATBCents
|
|
96
97
|
};
|
|
97
98
|
}
|
|
98
99
|
export function serviceBookingParamsToLuxon(params) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiServiceBookingApiUtils.js","sourceRoot":"","sources":["../../../src/utils/service/apiServiceBookingApiUtils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"apiServiceBookingApiUtils.js","sourceRoot":"","sources":["../../../src/utils/service/apiServiceBookingApiUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { ServiceAttendeeOption } from "./attendeeOptionUtils";
|
|
|
4
4
|
import { ServiceRatesLuxon } from "./serviceRateUtils";
|
|
5
5
|
import { LuxonDateRange } from "../luxonUtils";
|
|
6
6
|
import { ServiceBookingFeeBase, ServiceBookingPriceBreakdownBaseT, ServiceBookingAddOnBase } from "./serviceBookingTypes";
|
|
7
|
-
export declare const SERVICE_BOOKING_PROCESSING_FEE_PERCENT
|
|
7
|
+
export declare const SERVICE_BOOKING_PROCESSING_FEE_PERCENT: number;
|
|
8
8
|
export interface ServiceAddonInput extends ServiceAddon {
|
|
9
9
|
chosenQuantity?: number;
|
|
10
10
|
}
|
|
@@ -32,6 +32,7 @@ export interface FrontendServiceGetPriceToBookResult {
|
|
|
32
32
|
daysTotalBeforeTaxesCents: number;
|
|
33
33
|
subtotalBeforeTaxesCents: number;
|
|
34
34
|
totalBeforeTaxesCents: number;
|
|
35
|
+
totalWithFees: number;
|
|
35
36
|
minimumTimeBlockHours?: number;
|
|
36
37
|
}
|
|
37
38
|
export interface FrontendServiceGetBookingDayInfoFrontParams {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontendServiceBookingUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/service/frontendServiceBookingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGZ,wBAAwB,EACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAML,0BAA0B,EAE3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAML,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,qBAAqB,EACrB,iCAAiC,EACjC,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAO/B,eAAO,MAAM,sCAAsC,
|
|
1
|
+
{"version":3,"file":"frontendServiceBookingUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/service/frontendServiceBookingUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ServiceBookingFeeType, ServiceBookingRateOption, } from "@prisma/client";
|
|
2
2
|
import { getServiceRatePricingInfo, SERVICE_DAILY_RATE_HOURS_MIN, serviceGetFilteredRates, serviceRatesFilter, serviceRatesHasRates, } from "./serviceRateUtils";
|
|
3
3
|
import { dateTimeDiffHours, } from "../luxonUtils";
|
|
4
|
-
import {
|
|
4
|
+
import { SERVICE_BOOKING_FEES } from "../../membershipDefinitions";
|
|
5
5
|
// Use centralized service fee percentage (15% base rate for Basic tier)
|
|
6
6
|
// Note: This is the DEFAULT processing fee. Actual fees may be lower based on membership tier.
|
|
7
|
-
// See
|
|
8
|
-
export const SERVICE_BOOKING_PROCESSING_FEE_PERCENT =
|
|
7
|
+
// See SERVICE_BOOKING_FEES in membershipDefinitions.ts for all tier-based fees.
|
|
8
|
+
export const SERVICE_BOOKING_PROCESSING_FEE_PERCENT = SERVICE_BOOKING_FEES.Basic.percent;
|
|
9
9
|
export function frontendServiceGetBookingDayInfo({ rateOption, filteredRates, daysToBookParams,
|
|
10
10
|
// overlappingBusinessHours,
|
|
11
11
|
timezone, }) {
|
|
@@ -143,6 +143,7 @@ timezone, }) {
|
|
|
143
143
|
daysTotalBeforeTaxesCents: daysTotalBeforeTaxesCents,
|
|
144
144
|
subtotalBeforeTaxesCents: subtotalBeforeTaxesCents,
|
|
145
145
|
totalBeforeTaxesCents: totalBeforeTaxesCents,
|
|
146
|
+
totalWithFees: totalBeforeTaxesCents, // Same as totalBeforeTaxesCents
|
|
146
147
|
additionalFees: allAdditionalFees,
|
|
147
148
|
addOns: usedAddons,
|
|
148
149
|
minimumTimeBlockHours: minimumTimeBlockHours,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontendServiceBookingUtils.js","sourceRoot":"","sources":["../../../src/utils/service/frontendServiceBookingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAWxB,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,GAErB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,GAGlB,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"frontendServiceBookingUtils.js","sourceRoot":"","sources":["../../../src/utils/service/frontendServiceBookingUtils.ts"],"names":[],"mappings":"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"}
|