@bash-app/bash-common 30.120.0 → 30.121.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/utils/paymentUtils.d.ts +9 -1
- package/dist/utils/paymentUtils.d.ts.map +1 -1
- package/dist/utils/paymentUtils.js +28 -5
- package/dist/utils/paymentUtils.js.map +1 -1
- package/package.json +1 -1
- package/prisma/schema.prisma +15 -5
- package/src/definitions.ts +1 -1
- package/src/utils/paymentUtils.ts +32 -5
|
@@ -7,11 +7,19 @@ import { NumberOfTicketsForDate } from "../definitions";
|
|
|
7
7
|
*/
|
|
8
8
|
export declare function calculateDiscountFromPromoCode(totalInDollars: number, promoCode: BashEventPromoCode | undefined): number;
|
|
9
9
|
/**
|
|
10
|
-
* Returns the total price based on a map where the keys are the ticketTierIds
|
|
10
|
+
* Returns the total price in USD cents based on a map where the keys are the ticketTierIds
|
|
11
|
+
* Only counts USD-priced tickets. BashPoints tickets are excluded (they have price=0).
|
|
11
12
|
* @param ticketTiers
|
|
12
13
|
* @param ticketList
|
|
13
14
|
*/
|
|
14
15
|
export declare function calculateTotalPriceWithoutTax(ticketTiers: TicketTier[], ticketList: Map<string, NumberOfTicketsForDate[]>): number;
|
|
16
|
+
/**
|
|
17
|
+
* Returns the total BashPoints cost for BashPoints-priced tickets
|
|
18
|
+
* Only counts BASHPOINTS-priced tickets. USD tickets are excluded.
|
|
19
|
+
* @param ticketTiers
|
|
20
|
+
* @param ticketList
|
|
21
|
+
*/
|
|
22
|
+
export declare function calculateTotalBashPoints(ticketTiers: TicketTier[], ticketList: Map<string, NumberOfTicketsForDate[]>): number;
|
|
15
23
|
export declare function convertCentsToDollars(price: number | undefined | null): number;
|
|
16
24
|
export declare function convertDollarsToCents(price: number | undefined | null): number;
|
|
17
25
|
/**
|
|
@@ -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;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
|
|
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;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,UAAU,EAAE,EACzB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAC,GAChD,MAAM,CAYR;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,UAAU,EAAE,EACzB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAC,GAChD,MAAM,CAYR;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;;;;;;GAMG;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"}
|
|
@@ -20,17 +20,40 @@ export function calculateDiscountFromPromoCode(totalInDollars, promoCode) {
|
|
|
20
20
|
return 0;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
* Returns the total price based on a map where the keys are the ticketTierIds
|
|
23
|
+
* Returns the total price in USD cents based on a map where the keys are the ticketTierIds
|
|
24
|
+
* Only counts USD-priced tickets. BashPoints tickets are excluded (they have price=0).
|
|
24
25
|
* @param ticketTiers
|
|
25
26
|
* @param ticketList
|
|
26
27
|
*/
|
|
27
28
|
export function calculateTotalPriceWithoutTax(ticketTiers, ticketList) {
|
|
28
29
|
let total = 0;
|
|
29
30
|
ticketTiers.forEach((tier) => {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
// Only calculate USD prices - BashPoints tickets should have price=0
|
|
32
|
+
if (tier.pricingType !== "BASHPOINTS") {
|
|
33
|
+
const ticketListNumAndDate = ticketList.get(tier.id);
|
|
34
|
+
ticketListNumAndDate?.forEach((numAndDate) => {
|
|
35
|
+
total += tier.price * (numAndDate.numberOfTickets ?? 0);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return total;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Returns the total BashPoints cost for BashPoints-priced tickets
|
|
43
|
+
* Only counts BASHPOINTS-priced tickets. USD tickets are excluded.
|
|
44
|
+
* @param ticketTiers
|
|
45
|
+
* @param ticketList
|
|
46
|
+
*/
|
|
47
|
+
export function calculateTotalBashPoints(ticketTiers, ticketList) {
|
|
48
|
+
let total = 0;
|
|
49
|
+
ticketTiers.forEach((tier) => {
|
|
50
|
+
// Only calculate BashPoints prices
|
|
51
|
+
if (tier.pricingType === "BASHPOINTS" && tier.priceBashPoints) {
|
|
52
|
+
const ticketListNumAndDate = ticketList.get(tier.id);
|
|
53
|
+
ticketListNumAndDate?.forEach((numAndDate) => {
|
|
54
|
+
total += tier.priceBashPoints * (numAndDate.numberOfTickets ?? 0);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
34
57
|
});
|
|
35
58
|
return total;
|
|
36
59
|
}
|
|
@@ -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,eAAe,EACf,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,6BAA6B,GAC9B,MAAM,gBAAgB,CAAC;AAExB;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,cAAsB,EACtB,SAAyC;IAEzC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,SAAS,CAAC,qBAAqB,EAAE,CAAC;YACpC,MAAM,iBAAiB,GAAG,qBAAqB,CAC7C,SAAS,CAAC,qBAAqB,CAChC,CAAC;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,0CAA0C;QACnF,CAAC;QACD,IAAI,SAAS,CAAC,wBAAwB,EAAE,CAAC;YACvC,MAAM,iBAAiB,GACrB,cAAc,GAAG,CAAC,SAAS,CAAC,wBAAwB,GAAG,GAAG,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC,0CAA0C;QAChG,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"paymentUtils.js","sourceRoot":"","sources":["../../src/utils/paymentUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/prisma/schema.prisma
CHANGED
|
@@ -2304,6 +2304,11 @@ model Exhibitor {
|
|
|
2304
2304
|
tierPricing Json? // For tiered pricing
|
|
2305
2305
|
pricingNotes String? // Additional pricing details or terms
|
|
2306
2306
|
|
|
2307
|
+
// Policy Fields
|
|
2308
|
+
cancellationPolicy String? // Exhibitor cancellation policy
|
|
2309
|
+
paymentTerms String? // Payment terms and conditions
|
|
2310
|
+
setupRequirements String? // Setup and breakdown requirements
|
|
2311
|
+
|
|
2307
2312
|
crowdSize AmountOfGuests? @relation(fields: [crowdSizeId], references: [id], onDelete: Cascade)
|
|
2308
2313
|
serviceRange ServiceRange? @relation(fields: [serviceRangeId], references: [id])
|
|
2309
2314
|
service Service?
|
|
@@ -2326,6 +2331,11 @@ model Sponsor {
|
|
|
2326
2331
|
tierPricing Json? // For tiered pricing: [{name: "Bronze", priceCents: 100000}, ...]
|
|
2327
2332
|
pricingNotes String? // Additional pricing details or terms
|
|
2328
2333
|
|
|
2334
|
+
// Policy Fields
|
|
2335
|
+
cancellationPolicy String? // Sponsorship cancellation and refund policy
|
|
2336
|
+
contractTerms String? // Contract terms and conditions
|
|
2337
|
+
paymentTerms String? // Payment terms and requirements
|
|
2338
|
+
|
|
2329
2339
|
service Service?
|
|
2330
2340
|
crowdSize AmountOfGuests? @relation(fields: [crowdSizeId], references: [id])
|
|
2331
2341
|
serviceRange ServiceRange? @relation(fields: [serviceRangeId], references: [id])
|
|
@@ -2857,8 +2867,8 @@ model ServiceBooking {
|
|
|
2857
2867
|
isVendorBid Boolean @default(false)
|
|
2858
2868
|
vendorBidAmountCents Int?
|
|
2859
2869
|
vendorEventDetails String?
|
|
2860
|
-
|
|
2861
|
-
|
|
2870
|
+
bashPointsApplied Int? // BashPoints credits applied to this booking
|
|
2871
|
+
bashPointsTransactionId String? // Link to BashCreditTransaction
|
|
2862
2872
|
notification Notification[]
|
|
2863
2873
|
bashEvent BashEvent? @relation(fields: [bashEventId], references: [id])
|
|
2864
2874
|
creator User @relation("BookingCreator", fields: [creatorId], references: [id])
|
|
@@ -3817,7 +3827,7 @@ enum PrizeType {
|
|
|
3817
3827
|
}
|
|
3818
3828
|
|
|
3819
3829
|
enum PrizePaymentMethod {
|
|
3820
|
-
|
|
3830
|
+
BashPoints
|
|
3821
3831
|
Venmo
|
|
3822
3832
|
ZelleEmail
|
|
3823
3833
|
ZellePhone
|
|
@@ -5509,7 +5519,7 @@ enum AuditAction {
|
|
|
5509
5519
|
REFUND_ISSUED
|
|
5510
5520
|
REFUND_FAILED
|
|
5511
5521
|
|
|
5512
|
-
//
|
|
5522
|
+
// BashPoints
|
|
5513
5523
|
CREDITS_EARNED
|
|
5514
5524
|
CREDITS_REDEEMED
|
|
5515
5525
|
CREDITS_EXPIRED
|
|
@@ -5554,7 +5564,7 @@ enum AuditCategory {
|
|
|
5554
5564
|
Authorization
|
|
5555
5565
|
UserManagement
|
|
5556
5566
|
Payment
|
|
5557
|
-
|
|
5567
|
+
BashPoints
|
|
5558
5568
|
Events
|
|
5559
5569
|
Tickets
|
|
5560
5570
|
AdminAction
|
package/src/definitions.ts
CHANGED
|
@@ -363,7 +363,7 @@ export type ApiEntityApproval = {
|
|
|
363
363
|
|
|
364
364
|
export type TicketTierWherePriceIsAString = Omit<TicketTier, "price"> & {
|
|
365
365
|
price: string;
|
|
366
|
-
pricingType?: string; // 'USD' or '
|
|
366
|
+
pricingType?: string; // 'USD' or 'BASHPOINTS'
|
|
367
367
|
priceBashPoints?: string; // Price in BashPoints credits (string for form input)
|
|
368
368
|
} & { cannotDelete: boolean };
|
|
369
369
|
|
|
@@ -35,7 +35,8 @@ export function calculateDiscountFromPromoCode(
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
|
-
* Returns the total price based on a map where the keys are the ticketTierIds
|
|
38
|
+
* Returns the total price in USD cents based on a map where the keys are the ticketTierIds
|
|
39
|
+
* Only counts USD-priced tickets. BashPoints tickets are excluded (they have price=0).
|
|
39
40
|
* @param ticketTiers
|
|
40
41
|
* @param ticketList
|
|
41
42
|
*/
|
|
@@ -45,10 +46,36 @@ export function calculateTotalPriceWithoutTax(
|
|
|
45
46
|
): number {
|
|
46
47
|
let total = 0;
|
|
47
48
|
ticketTiers.forEach((tier: TicketTier) => {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
// Only calculate USD prices - BashPoints tickets should have price=0
|
|
50
|
+
if (tier.pricingType !== "BASHPOINTS") {
|
|
51
|
+
const ticketListNumAndDate = ticketList.get(tier.id);
|
|
52
|
+
ticketListNumAndDate?.forEach((numAndDate: NumberOfTicketsForDate) => {
|
|
53
|
+
total += tier.price * (numAndDate.numberOfTickets ?? 0);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return total;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Returns the total BashPoints cost for BashPoints-priced tickets
|
|
62
|
+
* Only counts BASHPOINTS-priced tickets. USD tickets are excluded.
|
|
63
|
+
* @param ticketTiers
|
|
64
|
+
* @param ticketList
|
|
65
|
+
*/
|
|
66
|
+
export function calculateTotalBashPoints(
|
|
67
|
+
ticketTiers: TicketTier[],
|
|
68
|
+
ticketList: Map<string, NumberOfTicketsForDate[]>
|
|
69
|
+
): number {
|
|
70
|
+
let total = 0;
|
|
71
|
+
ticketTiers.forEach((tier: TicketTier) => {
|
|
72
|
+
// Only calculate BashPoints prices
|
|
73
|
+
if (tier.pricingType === "BASHPOINTS" && tier.priceBashPoints) {
|
|
74
|
+
const ticketListNumAndDate = ticketList.get(tier.id);
|
|
75
|
+
ticketListNumAndDate?.forEach((numAndDate: NumberOfTicketsForDate) => {
|
|
76
|
+
total += tier.priceBashPoints! * (numAndDate.numberOfTickets ?? 0);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
52
79
|
});
|
|
53
80
|
return total;
|
|
54
81
|
}
|