@bash-app/bash-common 30.383.0 → 30.386.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/__tests__/accessScreening.test.js +39 -1
- package/dist/__tests__/accessScreening.test.js.map +1 -1
- package/dist/__tests__/applicationFunnel.test.d.ts +2 -0
- package/dist/__tests__/applicationFunnel.test.d.ts.map +1 -0
- package/dist/__tests__/applicationFunnel.test.js +126 -0
- package/dist/__tests__/applicationFunnel.test.js.map +1 -0
- package/dist/__tests__/definitionsHelpers.test.js +20 -1
- package/dist/__tests__/definitionsHelpers.test.js.map +1 -1
- package/dist/__tests__/fundingMeter.test.d.ts +2 -0
- package/dist/__tests__/fundingMeter.test.d.ts.map +1 -0
- package/dist/__tests__/fundingMeter.test.js +129 -0
- package/dist/__tests__/fundingMeter.test.js.map +1 -0
- package/dist/__tests__/giveaway.test.d.ts +2 -0
- package/dist/__tests__/giveaway.test.d.ts.map +1 -0
- package/dist/__tests__/giveaway.test.js +65 -0
- package/dist/__tests__/giveaway.test.js.map +1 -0
- package/dist/__tests__/promoterCompetitionUtils.test.d.ts +2 -0
- package/dist/__tests__/promoterCompetitionUtils.test.d.ts.map +1 -0
- package/dist/__tests__/promoterCompetitionUtils.test.js +262 -0
- package/dist/__tests__/promoterCompetitionUtils.test.js.map +1 -0
- package/dist/accessScreening.d.ts +18 -3
- package/dist/accessScreening.d.ts.map +1 -1
- package/dist/accessScreening.js +26 -0
- package/dist/accessScreening.js.map +1 -1
- package/dist/applicationFunnel.d.ts +58 -0
- package/dist/applicationFunnel.d.ts.map +1 -0
- package/dist/applicationFunnel.js +147 -0
- package/dist/applicationFunnel.js.map +1 -0
- package/dist/definitions.d.ts +146 -5
- package/dist/definitions.d.ts.map +1 -1
- package/dist/definitions.js +138 -5
- package/dist/definitions.js.map +1 -1
- package/dist/extendedSchemas.d.ts +174 -0
- package/dist/extendedSchemas.d.ts.map +1 -1
- package/dist/extendedSchemas.js +15 -0
- package/dist/extendedSchemas.js.map +1 -1
- package/dist/fundingMeter.d.ts +66 -0
- package/dist/fundingMeter.d.ts.map +1 -0
- package/dist/fundingMeter.js +99 -0
- package/dist/fundingMeter.js.map +1 -0
- package/dist/giveaway.d.ts +71 -0
- package/dist/giveaway.d.ts.map +1 -0
- package/dist/giveaway.js +117 -0
- package/dist/giveaway.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/__tests__/bashHostIdentity.test.d.ts +2 -0
- package/dist/utils/__tests__/bashHostIdentity.test.d.ts.map +1 -0
- package/dist/utils/__tests__/bashHostIdentity.test.js +39 -0
- package/dist/utils/__tests__/bashHostIdentity.test.js.map +1 -0
- package/dist/utils/__tests__/paymentUtils.test.js +28 -1
- package/dist/utils/__tests__/paymentUtils.test.js.map +1 -1
- package/dist/utils/__tests__/promoterCompetitionUtils.test.d.ts +2 -0
- package/dist/utils/__tests__/promoterCompetitionUtils.test.d.ts.map +1 -0
- package/dist/utils/__tests__/promoterCompetitionUtils.test.js +104 -0
- package/dist/utils/__tests__/promoterCompetitionUtils.test.js.map +1 -0
- package/dist/utils/__tests__/serviceAvailabilityDisplay.test.js +56 -1
- package/dist/utils/__tests__/serviceAvailabilityDisplay.test.js.map +1 -1
- package/dist/utils/__tests__/slugUtils.test.js +31 -2
- package/dist/utils/__tests__/slugUtils.test.js.map +1 -1
- package/dist/utils/bashHostIdentity.d.ts +18 -0
- package/dist/utils/bashHostIdentity.d.ts.map +1 -0
- package/dist/utils/bashHostIdentity.js +17 -0
- package/dist/utils/bashHostIdentity.js.map +1 -0
- package/dist/utils/paymentUtils.d.ts +18 -1
- package/dist/utils/paymentUtils.d.ts.map +1 -1
- package/dist/utils/paymentUtils.js +29 -2
- package/dist/utils/paymentUtils.js.map +1 -1
- package/dist/utils/promoterCompetitionUtils.d.ts +89 -0
- package/dist/utils/promoterCompetitionUtils.d.ts.map +1 -0
- package/dist/utils/promoterCompetitionUtils.js +158 -0
- package/dist/utils/promoterCompetitionUtils.js.map +1 -0
- package/dist/utils/serviceAvailabilityDisplay.d.ts +28 -2
- package/dist/utils/serviceAvailabilityDisplay.d.ts.map +1 -1
- package/dist/utils/serviceAvailabilityDisplay.js +39 -0
- package/dist/utils/serviceAvailabilityDisplay.js.map +1 -1
- package/dist/utils/slugUtils.d.ts +2 -0
- package/dist/utils/slugUtils.d.ts.map +1 -1
- package/dist/utils/slugUtils.js +5 -1
- package/dist/utils/slugUtils.js.map +1 -1
- package/package.json +1 -1
- package/prisma/schema.prisma +465 -29
- package/src/__tests__/accessScreening.test.ts +69 -1
- package/src/__tests__/applicationFunnel.test.ts +197 -0
- package/src/__tests__/definitionsHelpers.test.ts +24 -0
- package/src/__tests__/fundingMeter.test.ts +143 -0
- package/src/__tests__/giveaway.test.ts +111 -0
- package/src/__tests__/promoterCompetitionUtils.test.ts +334 -0
- package/src/accessScreening.ts +49 -0
- package/src/applicationFunnel.ts +225 -0
- package/src/definitions.ts +182 -5
- package/src/extendedSchemas.ts +131 -0
- package/src/fundingMeter.ts +188 -0
- package/src/giveaway.ts +182 -0
- package/src/index.ts +14 -0
- package/src/utils/__tests__/bashHostIdentity.test.ts +57 -0
- package/src/utils/__tests__/paymentUtils.test.ts +36 -0
- package/src/utils/__tests__/promoterCompetitionUtils.test.ts +128 -0
- package/src/utils/__tests__/serviceAvailabilityDisplay.test.ts +73 -0
- package/src/utils/__tests__/slugUtils.test.ts +46 -0
- package/src/utils/bashHostIdentity.ts +30 -0
- package/src/utils/paymentUtils.ts +47 -2
- package/src/utils/promoterCompetitionUtils.ts +235 -0
- package/src/utils/serviceAvailabilityDisplay.ts +82 -2
- package/src/utils/slugUtils.ts +11 -0
|
@@ -307,6 +307,27 @@ export function lowestGuestAllInPriceCents(tiers, event) {
|
|
|
307
307
|
}
|
|
308
308
|
return min;
|
|
309
309
|
}
|
|
310
|
+
/** Max share of attributed ticket subtotal a host can assign to a performer (50%). */
|
|
311
|
+
export const MAX_TICKET_COMMISSION_BPS = 5000;
|
|
312
|
+
/**
|
|
313
|
+
* Floor cents owed to a promo-code performer from the discounted ticket subtotal.
|
|
314
|
+
* Guest price is unchanged; this amount is withheld from the host via application_fee.
|
|
315
|
+
*/
|
|
316
|
+
export function ticketCommissionCents(basisCents, commissionBps) {
|
|
317
|
+
if (basisCents <= 0)
|
|
318
|
+
return 0;
|
|
319
|
+
const bps = Math.floor(Number(commissionBps) || 0);
|
|
320
|
+
if (bps <= 0)
|
|
321
|
+
return 0;
|
|
322
|
+
const clamped = Math.min(MAX_TICKET_COMMISSION_BPS, bps);
|
|
323
|
+
return Math.floor((basisCents * clamped) / 10_000);
|
|
324
|
+
}
|
|
325
|
+
export function clampTicketCommissionBps(commissionBps) {
|
|
326
|
+
const bps = Math.floor(Number(commissionBps) || 0);
|
|
327
|
+
if (bps <= 0)
|
|
328
|
+
return 0;
|
|
329
|
+
return Math.min(MAX_TICKET_COMMISSION_BPS, bps);
|
|
330
|
+
}
|
|
310
331
|
/**
|
|
311
332
|
* Compute the Stripe Connect `application_fee_amount` for a ticket-style charge,
|
|
312
333
|
* along with its constituent parts.
|
|
@@ -318,18 +339,24 @@ export function lowestGuestAllInPriceCents(tiers, event) {
|
|
|
318
339
|
* - `bashPlatformTotalCents` and `guestPlatformLineCents` are both zero
|
|
319
340
|
* - `totalChargedCents` collapses to the discounted subtotal (no guest-line fee added)
|
|
320
341
|
* - `applicationFeeAmountCents` equals `stripeProcessingCents`
|
|
342
|
+
* plus optional `performerCommissionCents`
|
|
321
343
|
*
|
|
322
|
-
* Default (`false`) preserves existing math bit-exact for every current caller
|
|
344
|
+
* Default (`false`) preserves existing math bit-exact for every current caller
|
|
345
|
+
* when `performerCommissionCents` is omitted or 0.
|
|
323
346
|
*/
|
|
324
347
|
export function computeTicketApplicationFeeAmountCents(args) {
|
|
325
348
|
const breakdown = computeGuestTicketCheckoutBreakdown(args);
|
|
349
|
+
const performerCommissionCents = Math.max(0, Math.floor(args.performerCommissionCents ?? 0));
|
|
350
|
+
const maxWithhold = Math.max(0, breakdown.totalDueCents - breakdown.applicationFeeAmountCents - 1);
|
|
351
|
+
const withheld = Math.min(performerCommissionCents, maxWithhold);
|
|
326
352
|
return {
|
|
327
353
|
totalChargedCents: breakdown.totalDueCents,
|
|
328
354
|
stripeProcessingCents: breakdown.stripeProcessingCents,
|
|
329
355
|
bashPlatformTotalCents: breakdown.bashPlatformTotalCents,
|
|
330
|
-
applicationFeeAmountCents: breakdown.applicationFeeAmountCents,
|
|
356
|
+
applicationFeeAmountCents: breakdown.applicationFeeAmountCents + withheld,
|
|
331
357
|
guestPlatformLineCents: breakdown.guestPlatformLineCents,
|
|
332
358
|
guestProcessingLineCents: breakdown.guestProcessingLineCents,
|
|
359
|
+
performerCommissionCents: withheld,
|
|
333
360
|
};
|
|
334
361
|
}
|
|
335
362
|
export function userHasActiveBashPass(user) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paymentUtils.js","sourceRoot":"","sources":["../../src/utils/paymentUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"paymentUtils.js","sourceRoot":"","sources":["../../src/utils/paymentUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Promoter Competition — pure utility functions for the Street Team / Promoter
|
|
3
|
+
* Competition workstream.
|
|
4
|
+
*
|
|
5
|
+
* No side effects, no DB imports — safe to import in bash-app (browser) and in api.
|
|
6
|
+
*/
|
|
7
|
+
import { PromoterRewardMode, PromoterRewardType } from '../definitions.js';
|
|
8
|
+
export interface PromoterMilestoneInput {
|
|
9
|
+
threshold?: number | null;
|
|
10
|
+
rank?: number | null;
|
|
11
|
+
rewardType: PromoterRewardType;
|
|
12
|
+
rewardAmountCents?: number | null;
|
|
13
|
+
rewardDescription?: string | null;
|
|
14
|
+
}
|
|
15
|
+
export interface PromoterCompetitionEconomics {
|
|
16
|
+
grossPotentialRevenueCents: number;
|
|
17
|
+
maxCashRewardExposureCents: number;
|
|
18
|
+
/** 0–100 range; maxCashReward / grossRevenue × 100, rounded to 1 decimal. */
|
|
19
|
+
effectiveAcquisitionCostPct: number;
|
|
20
|
+
/** gross − maxCashReward */
|
|
21
|
+
estimatedNetRevenueCents: number;
|
|
22
|
+
rewardBreakdown: Array<{
|
|
23
|
+
/** e.g. "5 sales → $15" or "Top 1 promoter → VIP access" */
|
|
24
|
+
label: string;
|
|
25
|
+
rewardAmountCents: number | null;
|
|
26
|
+
}>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Produces a single human-readable label for a promoter milestone.
|
|
30
|
+
*
|
|
31
|
+
* Examples:
|
|
32
|
+
* - threshold=5, CASH, rewardAmountCents=1500 → "5 sales → $15"
|
|
33
|
+
* - rank=1, TICKET, rewardDescription="VIP access" → "Top 1 promoter → VIP access"
|
|
34
|
+
* - threshold=10, TICKET, no description → "10 sales → TICKET"
|
|
35
|
+
*/
|
|
36
|
+
export declare function formatPromoterRewardLabel(milestone: {
|
|
37
|
+
threshold?: number | null;
|
|
38
|
+
rank?: number | null;
|
|
39
|
+
rewardType: PromoterRewardType;
|
|
40
|
+
rewardAmountCents?: number | null;
|
|
41
|
+
rewardDescription?: string | null;
|
|
42
|
+
}): string;
|
|
43
|
+
/**
|
|
44
|
+
* Pure economics calculator for a PROMOTER competition.
|
|
45
|
+
*
|
|
46
|
+
* Lets hosts sanity-check their milestone structure before publishing:
|
|
47
|
+
* how much revenue could the event generate and what is the max cash
|
|
48
|
+
* payout exposure?
|
|
49
|
+
*
|
|
50
|
+
* Rank-based (rank != null) CASH/CREDIT milestones are always added to the
|
|
51
|
+
* max cash exposure regardless of rewardMode because they represent real
|
|
52
|
+
* monetary obligations (just settled at competition close, not per-sale).
|
|
53
|
+
*/
|
|
54
|
+
export declare function computePromoterCompetitionEconomics(params: {
|
|
55
|
+
ticketPriceCents: number;
|
|
56
|
+
salesGoal: number;
|
|
57
|
+
milestones: PromoterMilestoneInput[];
|
|
58
|
+
rewardMode: PromoterRewardMode;
|
|
59
|
+
}): PromoterCompetitionEconomics;
|
|
60
|
+
/**
|
|
61
|
+
* Suggests a sales goal for the promoter competition wizard.
|
|
62
|
+
*
|
|
63
|
+
* Logic: take 40–60% of remaining capacity (capacity − ticketsSold), then snap
|
|
64
|
+
* to the nearest common benchmark in [25, 50, 75, 100, 150, 200]. Returns null
|
|
65
|
+
* when data is insufficient (null inputs or capacity ≤ 0).
|
|
66
|
+
*/
|
|
67
|
+
export declare function suggestPromoterSalesGoal(params: {
|
|
68
|
+
capacity: number | null;
|
|
69
|
+
ticketsSold: number | null;
|
|
70
|
+
}): number | null;
|
|
71
|
+
/**
|
|
72
|
+
* Produces a human-readable promoter reputation label based on lifetime stats.
|
|
73
|
+
* Returns null if the promoter has no completed events yet.
|
|
74
|
+
*
|
|
75
|
+
* Priority order (first match wins):
|
|
76
|
+
* 1. Competition winner (rank=1 achieved)
|
|
77
|
+
* 2. 100+ lifetime tickets sold
|
|
78
|
+
* 3. Repeat collaborator (worked with 2+ organizers more than once)
|
|
79
|
+
* 4. Experienced promoter (3+ events promoted)
|
|
80
|
+
* 5. Top seller within a competition (any milestone reached)
|
|
81
|
+
*/
|
|
82
|
+
export declare function getPromoterReputationLabel(stats: {
|
|
83
|
+
lifetimeQualifiedTickets: number;
|
|
84
|
+
totalCompetitionsWon: number;
|
|
85
|
+
totalEventsPromoted: number;
|
|
86
|
+
repeatOrganizerCount: number;
|
|
87
|
+
totalMilestonesReached?: number;
|
|
88
|
+
}): string | null;
|
|
89
|
+
//# sourceMappingURL=promoterCompetitionUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promoterCompetitionUtils.d.ts","sourceRoot":"","sources":["../../src/utils/promoterCompetitionUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAM3E,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,4BAA4B;IAC3C,0BAA0B,EAAE,MAAM,CAAC;IACnC,0BAA0B,EAAE,MAAM,CAAC;IACnC,6EAA6E;IAC7E,2BAA2B,EAAE,MAAM,CAAC;IACpC,4BAA4B;IAC5B,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,KAAK,CAAC;QACrB,4DAA4D;QAC5D,KAAK,EAAE,MAAM,CAAC;QACd,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;KAClC,CAAC,CAAC;CACJ;AAMD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE;IACnD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,GAAG,MAAM,CAgBT;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,mCAAmC,CAAC,MAAM,EAAE;IAC1D,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,UAAU,EAAE,kBAAkB,CAAC;CAChC,GAAG,4BAA4B,CAqE/B;AAQD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,GAAG,MAAM,GAAG,IAAI,CAwBhB;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,wBAAwB,EAAE,MAAM,CAAC;IACjC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,GAAG,MAAM,GAAG,IAAI,CAUhB"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Promoter Competition — pure utility functions for the Street Team / Promoter
|
|
3
|
+
* Competition workstream.
|
|
4
|
+
*
|
|
5
|
+
* No side effects, no DB imports — safe to import in bash-app (browser) and in api.
|
|
6
|
+
*/
|
|
7
|
+
import { PromoterRewardMode, PromoterRewardType } from '../definitions.js';
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
// formatPromoterRewardLabel
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
/**
|
|
12
|
+
* Produces a single human-readable label for a promoter milestone.
|
|
13
|
+
*
|
|
14
|
+
* Examples:
|
|
15
|
+
* - threshold=5, CASH, rewardAmountCents=1500 → "5 sales → $15"
|
|
16
|
+
* - rank=1, TICKET, rewardDescription="VIP access" → "Top 1 promoter → VIP access"
|
|
17
|
+
* - threshold=10, TICKET, no description → "10 sales → TICKET"
|
|
18
|
+
*/
|
|
19
|
+
export function formatPromoterRewardLabel(milestone) {
|
|
20
|
+
const isCashOrCredit = milestone.rewardType === PromoterRewardType.CASH ||
|
|
21
|
+
milestone.rewardType === PromoterRewardType.CREDIT;
|
|
22
|
+
const rewardDisplay = isCashOrCredit && milestone.rewardAmountCents != null
|
|
23
|
+
? `$${(milestone.rewardAmountCents / 100).toLocaleString('en-US', { minimumFractionDigits: 0, maximumFractionDigits: 2 })}`
|
|
24
|
+
: milestone.rewardDescription ?? milestone.rewardType;
|
|
25
|
+
if (milestone.rank != null) {
|
|
26
|
+
const ordinal = milestone.rank === 1 ? 'Top promoter' : `Top ${milestone.rank} promoter`;
|
|
27
|
+
return `${ordinal} → ${rewardDisplay}`;
|
|
28
|
+
}
|
|
29
|
+
const threshold = milestone.threshold ?? '?';
|
|
30
|
+
return `${threshold} sales → ${rewardDisplay}`;
|
|
31
|
+
}
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
// computePromoterCompetitionEconomics
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
/**
|
|
36
|
+
* Pure economics calculator for a PROMOTER competition.
|
|
37
|
+
*
|
|
38
|
+
* Lets hosts sanity-check their milestone structure before publishing:
|
|
39
|
+
* how much revenue could the event generate and what is the max cash
|
|
40
|
+
* payout exposure?
|
|
41
|
+
*
|
|
42
|
+
* Rank-based (rank != null) CASH/CREDIT milestones are always added to the
|
|
43
|
+
* max cash exposure regardless of rewardMode because they represent real
|
|
44
|
+
* monetary obligations (just settled at competition close, not per-sale).
|
|
45
|
+
*/
|
|
46
|
+
export function computePromoterCompetitionEconomics(params) {
|
|
47
|
+
const { ticketPriceCents, salesGoal, milestones, rewardMode } = params;
|
|
48
|
+
const grossPotentialRevenueCents = ticketPriceCents * salesGoal;
|
|
49
|
+
// Partition milestones into threshold-based and rank-based.
|
|
50
|
+
const isCash = (m) => m.rewardType === PromoterRewardType.CASH ||
|
|
51
|
+
m.rewardType === PromoterRewardType.CREDIT;
|
|
52
|
+
const thresholdCash = milestones.filter((m) => m.rank == null && m.threshold != null && isCash(m) && m.rewardAmountCents != null);
|
|
53
|
+
const rankCash = milestones.filter((m) => m.rank != null && isCash(m) && m.rewardAmountCents != null);
|
|
54
|
+
let thresholdExposure = 0;
|
|
55
|
+
if (rewardMode === PromoterRewardMode.TOTAL_AT_MILESTONE) {
|
|
56
|
+
// Only the highest single threshold reward is effective at once.
|
|
57
|
+
thresholdExposure = Math.max(0, ...thresholdCash.map((m) => m.rewardAmountCents ?? 0));
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
// ADDITIVE — every threshold reward stacks.
|
|
61
|
+
thresholdExposure = thresholdCash.reduce((sum, m) => sum + (m.rewardAmountCents ?? 0), 0);
|
|
62
|
+
}
|
|
63
|
+
// Rank-based cash rewards always add on top (regardless of mode).
|
|
64
|
+
const rankExposure = rankCash.reduce((sum, m) => sum + (m.rewardAmountCents ?? 0), 0);
|
|
65
|
+
const maxCashRewardExposureCents = thresholdExposure + rankExposure;
|
|
66
|
+
const effectiveAcquisitionCostPct = grossPotentialRevenueCents > 0
|
|
67
|
+
? Math.round((maxCashRewardExposureCents / grossPotentialRevenueCents) * 1000) / 10
|
|
68
|
+
: 0;
|
|
69
|
+
const estimatedNetRevenueCents = grossPotentialRevenueCents - maxCashRewardExposureCents;
|
|
70
|
+
// Build rewardBreakdown — threshold milestones sorted ascending, rank milestones last.
|
|
71
|
+
const sortedMilestones = [...milestones].sort((a, b) => {
|
|
72
|
+
const aIsRank = a.rank != null;
|
|
73
|
+
const bIsRank = b.rank != null;
|
|
74
|
+
if (aIsRank && !bIsRank)
|
|
75
|
+
return 1;
|
|
76
|
+
if (!aIsRank && bIsRank)
|
|
77
|
+
return -1;
|
|
78
|
+
if (!aIsRank && !bIsRank) {
|
|
79
|
+
return (a.threshold ?? Infinity) - (b.threshold ?? Infinity);
|
|
80
|
+
}
|
|
81
|
+
// Both rank-based — sort by rank ascending.
|
|
82
|
+
return (a.rank ?? Infinity) - (b.rank ?? Infinity);
|
|
83
|
+
});
|
|
84
|
+
const rewardBreakdown = sortedMilestones.map((m) => ({
|
|
85
|
+
label: formatPromoterRewardLabel(m),
|
|
86
|
+
rewardAmountCents: m.rewardAmountCents ?? null,
|
|
87
|
+
}));
|
|
88
|
+
return {
|
|
89
|
+
grossPotentialRevenueCents,
|
|
90
|
+
maxCashRewardExposureCents,
|
|
91
|
+
effectiveAcquisitionCostPct,
|
|
92
|
+
estimatedNetRevenueCents,
|
|
93
|
+
rewardBreakdown,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
// suggestPromoterSalesGoal
|
|
98
|
+
// ---------------------------------------------------------------------------
|
|
99
|
+
const SALES_GOAL_SNAP_POINTS = [25, 50, 75, 100, 150, 200];
|
|
100
|
+
/**
|
|
101
|
+
* Suggests a sales goal for the promoter competition wizard.
|
|
102
|
+
*
|
|
103
|
+
* Logic: take 40–60% of remaining capacity (capacity − ticketsSold), then snap
|
|
104
|
+
* to the nearest common benchmark in [25, 50, 75, 100, 150, 200]. Returns null
|
|
105
|
+
* when data is insufficient (null inputs or capacity ≤ 0).
|
|
106
|
+
*/
|
|
107
|
+
export function suggestPromoterSalesGoal(params) {
|
|
108
|
+
const { capacity, ticketsSold } = params;
|
|
109
|
+
if (capacity == null || capacity <= 0)
|
|
110
|
+
return null;
|
|
111
|
+
const sold = ticketsSold ?? 0;
|
|
112
|
+
const remaining = Math.max(0, capacity - sold);
|
|
113
|
+
if (remaining === 0)
|
|
114
|
+
return null;
|
|
115
|
+
// Target the midpoint of 40–60% of remaining.
|
|
116
|
+
const target = remaining * 0.5;
|
|
117
|
+
// Snap to the nearest benchmark.
|
|
118
|
+
let best = SALES_GOAL_SNAP_POINTS[0];
|
|
119
|
+
let bestDist = Math.abs(target - best);
|
|
120
|
+
for (const snap of SALES_GOAL_SNAP_POINTS) {
|
|
121
|
+
const dist = Math.abs(target - snap);
|
|
122
|
+
if (dist < bestDist) {
|
|
123
|
+
bestDist = dist;
|
|
124
|
+
best = snap;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return best;
|
|
128
|
+
}
|
|
129
|
+
// ---------------------------------------------------------------------------
|
|
130
|
+
// getPromoterReputationLabel
|
|
131
|
+
// ---------------------------------------------------------------------------
|
|
132
|
+
/**
|
|
133
|
+
* Produces a human-readable promoter reputation label based on lifetime stats.
|
|
134
|
+
* Returns null if the promoter has no completed events yet.
|
|
135
|
+
*
|
|
136
|
+
* Priority order (first match wins):
|
|
137
|
+
* 1. Competition winner (rank=1 achieved)
|
|
138
|
+
* 2. 100+ lifetime tickets sold
|
|
139
|
+
* 3. Repeat collaborator (worked with 2+ organizers more than once)
|
|
140
|
+
* 4. Experienced promoter (3+ events promoted)
|
|
141
|
+
* 5. Top seller within a competition (any milestone reached)
|
|
142
|
+
*/
|
|
143
|
+
export function getPromoterReputationLabel(stats) {
|
|
144
|
+
if (stats.totalEventsPromoted < 1)
|
|
145
|
+
return null;
|
|
146
|
+
if (stats.totalCompetitionsWon >= 1)
|
|
147
|
+
return 'Competition Winner';
|
|
148
|
+
if (stats.lifetimeQualifiedTickets >= 100)
|
|
149
|
+
return '100+ Tickets Sold';
|
|
150
|
+
if (stats.repeatOrganizerCount >= 2)
|
|
151
|
+
return 'Repeat Collaborator';
|
|
152
|
+
if (stats.totalEventsPromoted >= 3)
|
|
153
|
+
return 'Experienced Promoter';
|
|
154
|
+
if ((stats.totalMilestonesReached ?? 0) >= 1)
|
|
155
|
+
return 'Top Seller';
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=promoterCompetitionUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promoterCompetitionUtils.js","sourceRoot":"","sources":["../../src/utils/promoterCompetitionUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,22 @@ export interface AvailabilityBlockedRange {
|
|
|
25
25
|
start: Date | string;
|
|
26
26
|
end: Date | string;
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Minimum shape needed to decide whether a service can take a bash on a
|
|
30
|
+
* calendar day. One confirmed/approved booking occupies the whole day.
|
|
31
|
+
*/
|
|
32
|
+
export interface ServiceDayAvailabilityInput {
|
|
33
|
+
availableHours?: unknown;
|
|
34
|
+
serviceRatesAssociation?: {
|
|
35
|
+
serviceSpecialRates?: Array<{
|
|
36
|
+
isAvailable?: boolean | null;
|
|
37
|
+
startDate?: Date | string | null;
|
|
38
|
+
endDate?: Date | string | null;
|
|
39
|
+
}> | null;
|
|
40
|
+
} | null;
|
|
41
|
+
/** Occupied ranges from Confirmed/Approved bookings (public list). */
|
|
42
|
+
bookedRanges?: readonly AvailabilityBlockedRange[] | null;
|
|
43
|
+
}
|
|
28
44
|
/** Parse `Service.availableHours` (string or object) into a config, or null. */
|
|
29
45
|
export declare function parseAvailableHours(availableHours: unknown): AvailabilityHoursConfig | null;
|
|
30
46
|
/**
|
|
@@ -42,8 +58,18 @@ export declare function applyAvailabilityPreset(preset: Exclude<AvailabilityPres
|
|
|
42
58
|
export declare function formatAvailabilityPresetLabel(preset: AvailabilityPreset): string;
|
|
43
59
|
/** Whether a given date's weekday is open per the `openDays` map. */
|
|
44
60
|
export declare function isAvailabilityDayOpen(openDays: Record<string, boolean> | null | undefined, date: Date): boolean;
|
|
61
|
+
/** Owner-blocked ranges from `ServiceSpecialRates` where `isAvailable` is false. */
|
|
62
|
+
export declare function blockedRangesFromSpecialRates(specialRates: NonNullable<NonNullable<ServiceDayAvailabilityInput["serviceRatesAssociation"]>["serviceSpecialRates"]> | null | undefined): AvailabilityBlockedRange[];
|
|
63
|
+
/**
|
|
64
|
+
* True when the service can take a bash on `date`: weekly hours are open,
|
|
65
|
+
* the owner has not blocked the day, and no confirmed/approved booking
|
|
66
|
+
* already occupies it. Missing hours mean every weekday is treated as open.
|
|
67
|
+
*/
|
|
68
|
+
export declare function isServiceAvailableOnDate(service: ServiceDayAvailabilityInput, date: Date): boolean;
|
|
69
|
+
export declare function filterServicesAvailableOnDate<T extends ServiceDayAvailabilityInput>(services: readonly T[], date: Date): T[];
|
|
70
|
+
export declare function countServicesAvailableOnDate<T extends ServiceDayAvailabilityInput>(services: readonly T[], date: Date): number;
|
|
45
71
|
/** Whether a date falls within any owner-blocked (unavailable) range. */
|
|
46
|
-
export declare function isDateBlocked(blockedRanges: AvailabilityBlockedRange[], date: Date): boolean;
|
|
72
|
+
export declare function isDateBlocked(blockedRanges: readonly AvailabilityBlockedRange[], date: Date): boolean;
|
|
47
73
|
/**
|
|
48
74
|
* Earliest date the service is open per its weekly schedule and not within an
|
|
49
75
|
* owner-blocked range. Does NOT account for existing bookings, so callers should
|
|
@@ -51,7 +77,7 @@ export declare function isDateBlocked(blockedRanges: AvailabilityBlockedRange[],
|
|
|
51
77
|
*/
|
|
52
78
|
export declare function computeEarliestOpenDate(params: {
|
|
53
79
|
openDays?: Record<string, boolean> | null;
|
|
54
|
-
blockedRanges?: AvailabilityBlockedRange[] | null;
|
|
80
|
+
blockedRanges?: readonly AvailabilityBlockedRange[] | null;
|
|
55
81
|
fromDate?: Date;
|
|
56
82
|
maxLookaheadDays?: number;
|
|
57
83
|
}): Date | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceAvailabilityDisplay.d.ts","sourceRoot":"","sources":["../../src/utils/serviceAvailabilityDisplay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,0EAA0E;AAC1E,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC;IACrB,GAAG,EAAE,IAAI,GAAG,MAAM,CAAC;CACpB;AA8BD,gFAAgF;AAChF,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,OAAO,GACtB,uBAAuB,GAAG,IAAI,CAchC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACnD,kBAAkB,GAAG,IAAI,CAmB3B;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,EAC7C,IAAI,CAAC,EAAE,uBAAuB,GAAG,IAAI,GACpC,uBAAuB,CAazB;AAED,yEAAyE;AACzE,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,kBAAkB,GACzB,MAAM,CASR;AAMD,qEAAqE;AACrE,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACpD,IAAI,EAAE,IAAI,GACT,OAAO,CAKT;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAC3B,aAAa,EAAE,wBAAwB,EAAE,
|
|
1
|
+
{"version":3,"file":"serviceAvailabilityDisplay.d.ts","sourceRoot":"","sources":["../../src/utils/serviceAvailabilityDisplay.ts"],"names":[],"mappings":"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"}
|
|
@@ -110,6 +110,45 @@ export function isAvailabilityDayOpen(openDays, date) {
|
|
|
110
110
|
// Treat unset days as open; only an explicit false closes a day.
|
|
111
111
|
return openDays[name] !== false;
|
|
112
112
|
}
|
|
113
|
+
/** Owner-blocked ranges from `ServiceSpecialRates` where `isAvailable` is false. */
|
|
114
|
+
export function blockedRangesFromSpecialRates(specialRates) {
|
|
115
|
+
if (!specialRates)
|
|
116
|
+
return [];
|
|
117
|
+
const ranges = [];
|
|
118
|
+
for (const rate of specialRates) {
|
|
119
|
+
if (rate?.isAvailable === false && rate.startDate && rate.endDate) {
|
|
120
|
+
ranges.push({ start: rate.startDate, end: rate.endDate });
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return ranges;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* True when the service can take a bash on `date`: weekly hours are open,
|
|
127
|
+
* the owner has not blocked the day, and no confirmed/approved booking
|
|
128
|
+
* already occupies it. Missing hours mean every weekday is treated as open.
|
|
129
|
+
*/
|
|
130
|
+
export function isServiceAvailableOnDate(service, date) {
|
|
131
|
+
const config = parseAvailableHours(service.availableHours);
|
|
132
|
+
if (!isAvailabilityDayOpen(config?.openDays, date))
|
|
133
|
+
return false;
|
|
134
|
+
if (isDateBlocked(blockedRangesFromSpecialRates(service.serviceRatesAssociation?.serviceSpecialRates), date)) {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
if (isDateBlocked(service.bookedRanges ?? [], date))
|
|
138
|
+
return false;
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
export function filterServicesAvailableOnDate(services, date) {
|
|
142
|
+
return services.filter((service) => isServiceAvailableOnDate(service, date));
|
|
143
|
+
}
|
|
144
|
+
export function countServicesAvailableOnDate(services, date) {
|
|
145
|
+
let count = 0;
|
|
146
|
+
for (const service of services) {
|
|
147
|
+
if (isServiceAvailableOnDate(service, date))
|
|
148
|
+
count += 1;
|
|
149
|
+
}
|
|
150
|
+
return count;
|
|
151
|
+
}
|
|
113
152
|
/** Whether a date falls within any owner-blocked (unavailable) range. */
|
|
114
153
|
export function isDateBlocked(blockedRanges, date) {
|
|
115
154
|
const day = startOfLocalDay(date).getTime();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceAvailabilityDisplay.js","sourceRoot":"","sources":["../../src/utils/serviceAvailabilityDisplay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"serviceAvailabilityDisplay.js","sourceRoot":"","sources":["../../src/utils/serviceAvailabilityDisplay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAsCH,MAAM,aAAa,GAAG;IACpB,QAAQ;IACR,SAAS;IACT,WAAW;IACX,UAAU;IACV,QAAQ;CACA,CAAC;AACX,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAU,CAAC;AACtD,MAAM,aAAa,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,aAAa,CAAU,CAAC;AAEpE,4EAA4E;AAC5E,MAAM,iBAAiB,GAAG;IACxB,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,WAAW;IACX,UAAU;IACV,QAAQ;IACR,UAAU;CACF,CAAC;AAEX,kEAAkE;AAClE,MAAM,iBAAiB,GAAyB;IAC9C,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;CAClB,CAAC;AACF,MAAM,WAAW,GAAyB,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAElE,gFAAgF;AAChF,MAAM,UAAU,mBAAmB,CACjC,cAAuB;IAEvB,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GACV,OAAO,cAAc,KAAK,QAAQ;YAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YAC5B,CAAC,CAAC,cAAc,CAAC;QACrB,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO,MAAiC,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAoD;IAEpD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CACvC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,CACrC,CAAC;IACF,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,eAAe,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;IAC7E,MAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAC3C,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,CACjC,CAAC;IACF,MAAM,eAAe,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;IAC7E,MAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAC3C,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,CACjC,CAAC;IAEF,IAAI,eAAe,IAAI,iBAAiB;QAAE,OAAO,UAAU,CAAC;IAC5D,IAAI,eAAe,IAAI,iBAAiB;QAAE,OAAO,UAAU,CAAC;IAC5D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAA6C,EAC7C,IAAqC;IAErC,MAAM,YAAY,GAChB,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;IACxD,MAAM,KAAK,GAA2C,EAAE,CAAC;IACzD,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAAI,YAAkC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjE,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QACvB,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC9C,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,6BAA6B,CAC3C,MAA0B;IAE1B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU;YACb,OAAO,uBAAuB,CAAC;QACjC,KAAK,UAAU;YACb,OAAO,uBAAuB,CAAC;QACjC;YACE,OAAO,qBAAqB,CAAC;IACjC,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAU;IACjC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,qBAAqB,CACnC,QAAoD,EACpD,IAAU;IAEV,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,iEAAiE;IACjE,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;AAClC,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,6BAA6B,CAC3C,YAOa;IAEb,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,MAAM,GAA+B,EAAE,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,IAAI,EAAE,WAAW,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAoC,EACpC,IAAU;IAEV,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACjE,IACE,aAAa,CACX,6BAA6B,CAC3B,OAAO,CAAC,uBAAuB,EAAE,mBAAmB,CACrD,EACD,IAAI,CACL,EACD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,QAAsB,EACtB,IAAU;IAEV,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,4BAA4B,CAE1C,QAAsB,EAAE,IAAU;IAClC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAC3B,aAAkD,EAClD,IAAU;IAEV,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3D,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3D,OAAO,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAKvC;IACC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;IAC7E,MAAM,MAAM,GAAG,aAAa,IAAI,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IAEvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3C,IACE,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC1C,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,EACjC,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -16,6 +16,8 @@ export declare function getPublicBashMemoriesPath(bashEventId: string, slug: str
|
|
|
16
16
|
export declare function getBashEventWizardStepPath(bashEventId: string, majorStep: number, subStep: number): string;
|
|
17
17
|
/** Host redirect target: "How" → Payout (Stripe Connect / ticket proceeds). */
|
|
18
18
|
export declare function getBashEventWizardPayoutStepPath(bashEventId: string): string;
|
|
19
|
+
/** Create / resume at Getting Started (Templates). Defaults to the `new` draft. */
|
|
20
|
+
export declare function getBashEventWizardStartPath(bashEventId?: string): string;
|
|
19
21
|
export declare function parseBashUrlParams(param: string): {
|
|
20
22
|
id: string;
|
|
21
23
|
slug: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slugUtils.d.ts","sourceRoot":"","sources":["../../src/utils/slugUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slugUtils.d.ts","sourceRoot":"","sources":["../../src/utils/slugUtils.ts"],"names":[],"mappings":"AAwCA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EACvE,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,MAAM,CAMR;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,MAAM,CAER;AAED,yFAAyF;AACzF,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,MAAM,CAER;AAED,+EAA+E;AAC/E,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED,mFAAmF;AACnF,wBAAgB,2BAA2B,CAAC,WAAW,SAAQ,GAAG,MAAM,CAMvE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAqB5F;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGlD"}
|
package/dist/utils/slugUtils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as slugifyImport from "slugify";
|
|
2
|
-
import { BASH_DETAIL_URL, BASH_EVENT_WIZARD_HOW_MAJOR_STEP, BASH_EVENT_WIZARD_HOW_SUBSTEP_PAYOUT, BASH_EVENT_WIZARD_PATH_PREFIX, } from '../definitions.js';
|
|
2
|
+
import { BASH_DETAIL_URL, BASH_EVENT_WIZARD_HOW_MAJOR_STEP, BASH_EVENT_WIZARD_HOW_SUBSTEP_PAYOUT, BASH_EVENT_WIZARD_MAJOR, BASH_EVENT_WIZARD_PATH_PREFIX, BASH_EVENT_WIZARD_TEMPLATES_SUBSTEP, } from '../definitions.js';
|
|
3
3
|
function isSlugifyFn(value) {
|
|
4
4
|
return typeof value === "function";
|
|
5
5
|
}
|
|
@@ -67,6 +67,10 @@ export function getBashEventWizardStepPath(bashEventId, majorStep, subStep) {
|
|
|
67
67
|
export function getBashEventWizardPayoutStepPath(bashEventId) {
|
|
68
68
|
return getBashEventWizardStepPath(bashEventId, BASH_EVENT_WIZARD_HOW_MAJOR_STEP, BASH_EVENT_WIZARD_HOW_SUBSTEP_PAYOUT);
|
|
69
69
|
}
|
|
70
|
+
/** Create / resume at Getting Started (Templates). Defaults to the `new` draft. */
|
|
71
|
+
export function getBashEventWizardStartPath(bashEventId = "new") {
|
|
72
|
+
return getBashEventWizardStepPath(bashEventId, BASH_EVENT_WIZARD_MAJOR.TEMPLATES, BASH_EVENT_WIZARD_TEMPLATES_SUBSTEP.START);
|
|
73
|
+
}
|
|
70
74
|
export function parseBashUrlParams(param) {
|
|
71
75
|
// Expected format: "id-slug" where id is first part before first dash
|
|
72
76
|
const dashIndex = param.indexOf('-');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slugUtils.js","sourceRoot":"","sources":["../../src/utils/slugUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,SAAS,CAAC;AACzC,OAAO,EACL,eAAe,EACf,gCAAgC,EAChC,oCAAoC,EACpC,6BAA6B,
|
|
1
|
+
{"version":3,"file":"slugUtils.js","sourceRoot":"","sources":["../../src/utils/slugUtils.ts"],"names":[],"mappings":"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"}
|