@bash-app/bash-common 30.307.0 → 30.308.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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=guestPartySize.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guestPartySize.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/guestPartySize.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { resolveMaxPlusOnes, resolveMaxSeatsPerBuyer, rsvpPartyPolicyGuestCopy, seatsForTicketQuantity, ticketPartyPolicyGuestCopy, } from "../guestPartySize.js";
2
+ describe("guestPartySize", () => {
3
+ it("resolveMaxSeatsPerBuyer", () => {
4
+ expect(resolveMaxSeatsPerBuyer(0)).toBe(1);
5
+ expect(resolveMaxSeatsPerBuyer(1)).toBe(2);
6
+ expect(resolveMaxSeatsPerBuyer(null)).toBeNull();
7
+ expect(resolveMaxSeatsPerBuyer(2, 1)).toBe(1);
8
+ });
9
+ it("resolveMaxPlusOnes soft-caps unlimited", () => {
10
+ expect(resolveMaxPlusOnes(null)).toBe(10);
11
+ expect(resolveMaxPlusOnes(0)).toBe(0);
12
+ });
13
+ it("seatsForTicketQuantity expands group packages", () => {
14
+ expect(seatsForTicketQuantity(1, 6, true)).toBe(6);
15
+ });
16
+ it("guest copy helpers", () => {
17
+ expect(rsvpPartyPolicyGuestCopy(0)).toMatch(/no plus-ones/i);
18
+ expect(ticketPartyPolicyGuestCopy(1)).toBe("Up to 2 tickets per person");
19
+ expect(ticketPartyPolicyGuestCopy(null)).toBeNull();
20
+ });
21
+ });
22
+ //# sourceMappingURL=guestPartySize.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guestPartySize.test.js","sourceRoot":"","sources":["../../src/__tests__/guestPartySize.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAE9B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjD,MAAM,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC7D,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACzE,MAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sideQuestIdeas.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sideQuestIdeas.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/sideQuestIdeas.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { filterSideQuestIdeas, SIDE_QUEST_IDEAS } from "../sideQuestIdeas";
2
+ describe("sideQuestIdeas", () => {
3
+ it("includes festival and market templates", () => {
4
+ expect(SIDE_QUEST_IDEAS.some((i) => i.tags.includes("festival"))).toBe(true);
5
+ expect(SIDE_QUEST_IDEAS.some((i) => i.tags.includes("market"))).toBe(true);
6
+ });
7
+ it("filters by search", () => {
8
+ const hits = filterSideQuestIdeas("transit");
9
+ expect(hits.length).toBeGreaterThan(0);
10
+ expect(hits.every((h) => JSON.stringify(h).toLowerCase().includes("transit") || h.category === "Transit")).toBe(true);
11
+ });
12
+ });
13
+ //# sourceMappingURL=sideQuestIdeas.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sideQuestIdeas.test.js","sourceRoot":"","sources":["../../src/__tests__/sideQuestIdeas.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CACpE,IAAI,CACL,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,IAAI,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Event-level guest party size (plus-ones / seats-per-buyer).
3
+ * maxAdditionalGuests: 0 = alone, 1 = +1, 2 = +2, null = unlimited.
4
+ */
5
+ export declare const RSVP_PLUS_ONES_UI_SOFT_CAP = 10;
6
+ export declare const RSVP_PLUS_ONES_API_HARD_CAP = 20;
7
+ /** Max seats one buyer may hold (owned + cart). null = unlimited. */
8
+ export declare function resolveMaxSeatsPerBuyer(maxAdditionalGuests: number | null | undefined, tierMaxTicketsPerUser?: number | null): number | null;
9
+ /** Max plus-ones for RSVP UI/API. */
10
+ export declare function resolveMaxPlusOnes(maxAdditionalGuests: number | null | undefined, softCap?: number): number;
11
+ export declare function seatsForTicketQuantity(quantity: number, groupTicketSeatCount?: number | null, isGroupTicket?: boolean | null): number;
12
+ export declare function guestPartyPolicyLabel(maxAdditionalGuests: number | null | undefined): string;
13
+ /** Guest-facing RSVP copy. */
14
+ export declare function rsvpPartyPolicyGuestCopy(maxAdditionalGuests: number | null | undefined): string;
15
+ /** Guest-facing ticketed copy. */
16
+ export declare function ticketPartyPolicyGuestCopy(maxAdditionalGuests: number | null | undefined): string | null;
17
+ export declare function nearCapacityPartyError(spotsLeft: number): string;
18
+ //# sourceMappingURL=guestPartySize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guestPartySize.d.ts","sourceRoot":"","sources":["../src/guestPartySize.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,qEAAqE;AACrE,wBAAgB,uBAAuB,CACrC,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC9C,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,GACpC,MAAM,GAAG,IAAI,CAcf;AAED,qCAAqC;AACrC,wBAAgB,kBAAkB,CAChC,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC9C,OAAO,SAA6B,GACnC,MAAM,CAGR;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,EACpC,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI,GAC7B,MAAM,CAMR;AAED,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC7C,MAAM,CAKR;AAED,8BAA8B;AAC9B,wBAAgB,wBAAwB,CACtC,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC7C,MAAM,CAKR;AAED,kCAAkC;AAClC,wBAAgB,0BAA0B,CACxC,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC7C,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIhE"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Event-level guest party size (plus-ones / seats-per-buyer).
3
+ * maxAdditionalGuests: 0 = alone, 1 = +1, 2 = +2, null = unlimited.
4
+ */
5
+ export const RSVP_PLUS_ONES_UI_SOFT_CAP = 10;
6
+ export const RSVP_PLUS_ONES_API_HARD_CAP = 20;
7
+ /** Max seats one buyer may hold (owned + cart). null = unlimited. */
8
+ export function resolveMaxSeatsPerBuyer(maxAdditionalGuests, tierMaxTicketsPerUser) {
9
+ let eventCap = null;
10
+ if (maxAdditionalGuests != null && Number.isFinite(maxAdditionalGuests)) {
11
+ eventCap = Math.max(0, Math.floor(maxAdditionalGuests)) + 1;
12
+ }
13
+ const tierCap = tierMaxTicketsPerUser != null && Number.isFinite(tierMaxTicketsPerUser)
14
+ ? Math.max(0, Math.floor(tierMaxTicketsPerUser))
15
+ : null;
16
+ if (eventCap == null && tierCap == null)
17
+ return null;
18
+ if (eventCap == null)
19
+ return tierCap;
20
+ if (tierCap == null)
21
+ return eventCap;
22
+ return Math.min(eventCap, tierCap);
23
+ }
24
+ /** Max plus-ones for RSVP UI/API. */
25
+ export function resolveMaxPlusOnes(maxAdditionalGuests, softCap = RSVP_PLUS_ONES_UI_SOFT_CAP) {
26
+ if (maxAdditionalGuests == null)
27
+ return softCap;
28
+ return Math.max(0, Math.min(softCap, Math.floor(maxAdditionalGuests)));
29
+ }
30
+ export function seatsForTicketQuantity(quantity, groupTicketSeatCount, isGroupTicket) {
31
+ const qty = Math.max(0, Math.floor(quantity));
32
+ if (isGroupTicket && groupTicketSeatCount && groupTicketSeatCount > 0) {
33
+ return qty * groupTicketSeatCount;
34
+ }
35
+ return qty;
36
+ }
37
+ export function guestPartyPolicyLabel(maxAdditionalGuests) {
38
+ if (maxAdditionalGuests === 0)
39
+ return "No plus-ones";
40
+ if (maxAdditionalGuests === 1)
41
+ return "Plus one";
42
+ if (maxAdditionalGuests === 2)
43
+ return "Plus two";
44
+ return "Unlimited";
45
+ }
46
+ /** Guest-facing RSVP copy. */
47
+ export function rsvpPartyPolicyGuestCopy(maxAdditionalGuests) {
48
+ if (maxAdditionalGuests === 0)
49
+ return "Just you — no plus-ones";
50
+ if (maxAdditionalGuests === 1)
51
+ return "You can bring up to 1 guest";
52
+ if (maxAdditionalGuests === 2)
53
+ return "You can bring up to 2 guests";
54
+ return `You can bring up to ${RSVP_PLUS_ONES_UI_SOFT_CAP} guests`;
55
+ }
56
+ /** Guest-facing ticketed copy. */
57
+ export function ticketPartyPolicyGuestCopy(maxAdditionalGuests) {
58
+ if (maxAdditionalGuests == null)
59
+ return null;
60
+ const seats = maxAdditionalGuests + 1;
61
+ if (seats === 1)
62
+ return "1 ticket per person";
63
+ return `Up to ${seats} tickets per person`;
64
+ }
65
+ export function nearCapacityPartyError(spotsLeft) {
66
+ if (spotsLeft <= 0)
67
+ return "This bash is at capacity.";
68
+ if (spotsLeft === 1)
69
+ return "Only 1 spot left — you can’t bring that many guests.";
70
+ return `Only ${spotsLeft} spots left — you can’t bring that many guests.`;
71
+ }
72
+ //# sourceMappingURL=guestPartySize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guestPartySize.js","sourceRoot":"","sources":["../src/guestPartySize.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAC7C,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,qEAAqE;AACrE,MAAM,UAAU,uBAAuB,CACrC,mBAA8C,EAC9C,qBAAqC;IAErC,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,mBAAmB,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACxE,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,OAAO,GACX,qBAAqB,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACrE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAChD,CAAC,CAAC,IAAI,CAAC;IAEX,IAAI,QAAQ,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC;IACrC,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAC;IACrC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,kBAAkB,CAChC,mBAA8C,EAC9C,OAAO,GAAG,0BAA0B;IAEpC,IAAI,mBAAmB,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC;IAChD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,oBAAoC,EACpC,aAA8B;IAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,IAAI,aAAa,IAAI,oBAAoB,IAAI,oBAAoB,GAAG,CAAC,EAAE,CAAC;QACtE,OAAO,GAAG,GAAG,oBAAoB,CAAC;IACpC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,mBAA8C;IAE9C,IAAI,mBAAmB,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IACrD,IAAI,mBAAmB,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IACjD,IAAI,mBAAmB,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IACjD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,wBAAwB,CACtC,mBAA8C;IAE9C,IAAI,mBAAmB,KAAK,CAAC;QAAE,OAAO,yBAAyB,CAAC;IAChE,IAAI,mBAAmB,KAAK,CAAC;QAAE,OAAO,6BAA6B,CAAC;IACpE,IAAI,mBAAmB,KAAK,CAAC;QAAE,OAAO,8BAA8B,CAAC;IACrE,OAAO,uBAAuB,0BAA0B,SAAS,CAAC;AACpE,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,0BAA0B,CACxC,mBAA8C;IAE9C,IAAI,mBAAmB,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,KAAK,GAAG,mBAAmB,GAAG,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,qBAAqB,CAAC;IAC9C,OAAO,SAAS,KAAK,qBAAqB,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,2BAA2B,CAAC;IACvD,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,sDAAsD,CAAC;IACnF,OAAO,QAAQ,SAAS,iDAAiD,CAAC;AAC5E,CAAC"}
package/dist/index.d.ts CHANGED
@@ -7,9 +7,11 @@ export * from "./venueLoyaltyRedemption.js";
7
7
  export * from "./stripeListingSubscriptionMessages.js";
8
8
  export * from "./extendedSchemas.js";
9
9
  export * from "./competitionIdeas.js";
10
+ export * from "./sideQuestIdeas.js";
10
11
  export * from "./icebreakerPrompts.js";
11
12
  export * from "./competitionValidation.js";
12
13
  export * from "./groupTicketUtils.js";
14
+ export * from "./guestPartySize.js";
13
15
  export * from "./utils/groupTicketCartUtils.js";
14
16
  export * from "./partnerStoreTypes.js";
15
17
  export * from "./storeTypes.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,9 +7,11 @@ export * from "./venueLoyaltyRedemption.js";
7
7
  export * from "./stripeListingSubscriptionMessages.js";
8
8
  export * from "./extendedSchemas.js";
9
9
  export * from "./competitionIdeas.js";
10
+ export * from "./sideQuestIdeas.js";
10
11
  export * from "./icebreakerPrompts.js";
11
12
  export * from "./competitionValidation.js";
12
13
  export * from "./groupTicketUtils.js";
14
+ export * from "./guestPartySize.js";
13
15
  export * from "./utils/groupTicketCartUtils.js";
14
16
  export * from "./partnerStoreTypes.js";
15
17
  export * from "./storeTypes.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -141,6 +141,9 @@ export declare const CreditSourceType: {
141
141
  readonly ReferralCodeUsed: "ReferralCodeUsed";
142
142
  readonly VenueLoyaltyRedemption: "VenueLoyaltyRedemption";
143
143
  readonly PartnerPromoRedemption: "PartnerPromoRedemption";
144
+ readonly SideQuestCompletion: "SideQuestCompletion";
145
+ readonly SideQuestMilestone: "SideQuestMilestone";
146
+ readonly CommunityQuestUnlock: "CommunityQuestUnlock";
144
147
  };
145
148
  export type CreditSourceType = CreditSourceTypeEnum;
146
149
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mirroredPrismaEnums.d.ts","sourceRoot":"","sources":["../src/mirroredPrismaEnums.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,IAAI,0BAA0B,EACpD,gBAAgB,IAAI,oBAAoB,EACxC,qBAAqB,IAAI,yBAAyB,EAClD,YAAY,IAAI,gBAAgB,EAChC,6BAA6B,IAAI,iCAAiC,EAClE,8BAA8B,IAAI,kCAAkC,EACpE,yBAAyB,IAAI,6BAA6B,EAC1D,yBAAyB,IAAI,6BAA6B,EAC3D,MAAM,gBAAgB,CAAC;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;CAkBrC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,6BAA6B;;;;;;CASzC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,iCAAiC,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;CAI+C,CAAC;AAElF,MAAM,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;;;;;CAS1C,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,kCAAkC,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;CAWsC,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;CAGgD,CAAC;AAEpF,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;;CAQrC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AAEtE;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiC0C,CAAC;AAExE,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;CAQd,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"mirroredPrismaEnums.d.ts","sourceRoot":"","sources":["../src/mirroredPrismaEnums.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,IAAI,0BAA0B,EACpD,gBAAgB,IAAI,oBAAoB,EACxC,qBAAqB,IAAI,yBAAyB,EAClD,YAAY,IAAI,gBAAgB,EAChC,6BAA6B,IAAI,iCAAiC,EAClE,8BAA8B,IAAI,kCAAkC,EACpE,yBAAyB,IAAI,6BAA6B,EAC1D,yBAAyB,IAAI,6BAA6B,EAC3D,MAAM,gBAAgB,CAAC;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;CAkBrC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,6BAA6B;;;;;;CASzC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,iCAAiC,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;CAI+C,CAAC;AAElF,MAAM,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;;;;;CAS1C,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,kCAAkC,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;CAWsC,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;CAGgD,CAAC;AAEpF,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;;CAQrC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AAEtE;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC0C,CAAC;AAExE,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;CAQd,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC"}
@@ -133,6 +133,9 @@ export const CreditSourceType = {
133
133
  ReferralCodeUsed: "ReferralCodeUsed",
134
134
  VenueLoyaltyRedemption: "VenueLoyaltyRedemption",
135
135
  PartnerPromoRedemption: "PartnerPromoRedemption",
136
+ SideQuestCompletion: "SideQuestCompletion",
137
+ SideQuestMilestone: "SideQuestMilestone",
138
+ CommunityQuestUnlock: "CommunityQuestUnlock",
136
139
  };
137
140
  /**
138
141
  * Mirrors Prisma `BracketType` — includes HEAT / BATTLE_ROYALE before all consumers
@@ -1 +1 @@
1
- {"version":3,"file":"mirroredPrismaEnums.js","sourceRoot":"","sources":["../src/mirroredPrismaEnums.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mirroredPrismaEnums.js","sourceRoot":"","sources":["../src/mirroredPrismaEnums.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Side Quest starter templates and category display metadata.
3
+ * Behavior design: Action → Prove (quest type) → Reward.
4
+ */
5
+ export type SideQuestCategoryId = "Explore" | "Connect" | "Discover" | "SupportLocal" | "Compete" | "Transit" | "Create" | "GiveBack";
6
+ export type SideQuestTypeId = "Qr" | "Code" | "Gps" | "Photo" | "CheckIn" | "Purchase" | "Vote" | "Sponsor" | "Social" | "Trivia";
7
+ export declare const SIDE_QUEST_CATEGORY_META: Record<SideQuestCategoryId, {
8
+ label: string;
9
+ emoji: string;
10
+ }>;
11
+ /** Phase 1 host-selectable quest types */
12
+ export declare const SIDE_QUEST_PHASE1_TYPES: SideQuestTypeId[];
13
+ export declare const SIDE_QUEST_TYPE_META: Record<SideQuestTypeId, {
14
+ label: string;
15
+ description: string;
16
+ phase1: boolean;
17
+ }>;
18
+ export interface SideQuestIdea {
19
+ id: string;
20
+ title: string;
21
+ description: string;
22
+ category: SideQuestCategoryId;
23
+ questType: SideQuestTypeId;
24
+ pointsReward: number;
25
+ tags: string[];
26
+ }
27
+ export declare const SIDE_QUEST_IDEAS: SideQuestIdea[];
28
+ export declare function filterSideQuestIdeas(search: string): SideQuestIdea[];
29
+ /** Lifetime achievement catalog (Phase 2 awarding; definitions ship now). */
30
+ export declare const ADVENTURE_ACHIEVEMENT_CATALOG: readonly [{
31
+ readonly id: "explorer";
32
+ readonly name: "Explorer";
33
+ readonly description: "Completed 100 Side Quests";
34
+ readonly threshold: 100;
35
+ }, {
36
+ readonly id: "foodie";
37
+ readonly name: "Foodie";
38
+ readonly description: "Visited 50 vendors via Support Local quests";
39
+ readonly threshold: 50;
40
+ }, {
41
+ readonly id: "festival-veteran";
42
+ readonly name: "Festival Veteran";
43
+ readonly description: "Attended 25 festivals with Side Quests";
44
+ readonly threshold: 25;
45
+ }, {
46
+ readonly id: "transit-hero";
47
+ readonly name: "Transit Hero";
48
+ readonly description: "Rode transit to 15 events";
49
+ readonly threshold: 15;
50
+ }];
51
+ //# sourceMappingURL=sideQuestIdeas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sideQuestIdeas.d.ts","sourceRoot":"","sources":["../src/sideQuestIdeas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,SAAS,GACT,UAAU,GACV,cAAc,GACd,SAAS,GACT,SAAS,GACT,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,MAAM,eAAe,GACvB,IAAI,GACJ,MAAM,GACN,KAAK,GACL,OAAO,GACP,SAAS,GACT,UAAU,GACV,MAAM,GACN,SAAS,GACT,QAAQ,GACR,QAAQ,CAAC;AAEb,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAC3C,mBAAmB,EACnB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAUjC,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,uBAAuB,EAAE,eAAe,EAAmB,CAAC;AAEzE,eAAO,MAAM,oBAAoB,EAAE,MAAM,CACvC,eAAe,EACf;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAoDxD,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,eAAO,MAAM,gBAAgB,EAAE,aAAa,EA6G3C,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAUpE;AAED,6EAA6E;AAC7E,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;EAyBhC,CAAC"}
@@ -0,0 +1,215 @@
1
+ /**
2
+ * Side Quest starter templates and category display metadata.
3
+ * Behavior design: Action → Prove (quest type) → Reward.
4
+ */
5
+ export const SIDE_QUEST_CATEGORY_META = {
6
+ Explore: { label: "Explore", emoji: "🧭" },
7
+ Connect: { label: "Connect", emoji: "🤝" },
8
+ Discover: { label: "Discover", emoji: "🎵" },
9
+ SupportLocal: { label: "Support Local", emoji: "🛍️" },
10
+ Compete: { label: "Compete", emoji: "🏆" },
11
+ Transit: { label: "Transit", emoji: "🚆" },
12
+ Create: { label: "Create", emoji: "📸" },
13
+ GiveBack: { label: "Give Back", emoji: "❤️" },
14
+ };
15
+ /** Phase 1 host-selectable quest types */
16
+ export const SIDE_QUEST_PHASE1_TYPES = ["Qr", "Code"];
17
+ export const SIDE_QUEST_TYPE_META = {
18
+ Qr: {
19
+ label: "QR Quest",
20
+ description: "Guest scans a printed QR at the location.",
21
+ phase1: true,
22
+ },
23
+ Code: {
24
+ label: "Code Quest",
25
+ description: "Guest enters a short code shown on-site.",
26
+ phase1: true,
27
+ },
28
+ Gps: {
29
+ label: "GPS Quest",
30
+ description: "Guest checks in near a location.",
31
+ phase1: false,
32
+ },
33
+ Photo: {
34
+ label: "Photo Quest",
35
+ description: "Guest uploads a photo as proof.",
36
+ phase1: false,
37
+ },
38
+ CheckIn: {
39
+ label: "Check-in Quest",
40
+ description: "Tied to event ticket check-in.",
41
+ phase1: false,
42
+ },
43
+ Purchase: {
44
+ label: "Purchase Quest",
45
+ description: "Completes after a qualifying purchase.",
46
+ phase1: false,
47
+ },
48
+ Vote: {
49
+ label: "Vote Quest",
50
+ description: "Completes after voting in a competition.",
51
+ phase1: false,
52
+ },
53
+ Sponsor: {
54
+ label: "Sponsor Quest",
55
+ description: "Visit or engage with a sponsor booth.",
56
+ phase1: false,
57
+ },
58
+ Social: {
59
+ label: "Social Quest",
60
+ description: "Share or tag on social.",
61
+ phase1: false,
62
+ },
63
+ Trivia: {
64
+ label: "Trivia Quest",
65
+ description: "Answer a question correctly.",
66
+ phase1: false,
67
+ },
68
+ };
69
+ export const SIDE_QUEST_IDEAS = [
70
+ {
71
+ id: "festival-transit",
72
+ title: "Ride transit to the festival",
73
+ description: "Take FrontRunner, TRAX, or the bus — scan the code at the station booth.",
74
+ category: "Transit",
75
+ questType: "Qr",
76
+ pointsReward: 100,
77
+ tags: ["festival", "transit"],
78
+ },
79
+ {
80
+ id: "festival-vendor",
81
+ title: "Try food from a local vendor",
82
+ description: "Support a food vendor on site and grab their quest code.",
83
+ category: "SupportLocal",
84
+ questType: "Code",
85
+ pointsReward: 50,
86
+ tags: ["festival", "food"],
87
+ },
88
+ {
89
+ id: "festival-artists",
90
+ title: "Watch 3 different artists",
91
+ description: "Catch three sets — collect the stage code after the third.",
92
+ category: "Discover",
93
+ questType: "Code",
94
+ pointsReward: 75,
95
+ tags: ["festival", "music"],
96
+ },
97
+ {
98
+ id: "festival-photo",
99
+ title: "Take a photo at the landmark",
100
+ description: "Find the landmark and scan the QR nearby.",
101
+ category: "Create",
102
+ questType: "Qr",
103
+ pointsReward: 25,
104
+ tags: ["festival", "photo"],
105
+ },
106
+ {
107
+ id: "market-three-vendors",
108
+ title: "Buy from 3 vendors",
109
+ description: "Support three market stalls — get the code from the info booth when done.",
110
+ category: "SupportLocal",
111
+ questType: "Code",
112
+ pointsReward: 75,
113
+ tags: ["market"],
114
+ },
115
+ {
116
+ id: "market-meet-farmer",
117
+ title: "Meet a farmer",
118
+ description: "Say hello to a grower and scan their booth QR.",
119
+ category: "Connect",
120
+ questType: "Qr",
121
+ pointsReward: 50,
122
+ tags: ["market"],
123
+ },
124
+ {
125
+ id: "conference-keynote",
126
+ title: "Attend a keynote",
127
+ description: "Sit in on a keynote — scan the room QR on the way out.",
128
+ category: "Discover",
129
+ questType: "Qr",
130
+ pointsReward: 50,
131
+ tags: ["conference"],
132
+ },
133
+ {
134
+ id: "conference-meet-five",
135
+ title: "Meet five new people",
136
+ description: "Network intentionally — enter the lounge code when you've made five intros.",
137
+ category: "Connect",
138
+ questType: "Code",
139
+ pointsReward: 75,
140
+ tags: ["conference"],
141
+ },
142
+ {
143
+ id: "campus-club",
144
+ title: "Join a club fair booth",
145
+ description: "Stop by a student org table and scan their QR.",
146
+ category: "Connect",
147
+ questType: "Qr",
148
+ pointsReward: 40,
149
+ tags: ["campus"],
150
+ },
151
+ {
152
+ id: "downtown-mural",
153
+ title: "Find a hidden mural",
154
+ description: "Hunt the mural and scan the nearby QR.",
155
+ category: "Explore",
156
+ questType: "Qr",
157
+ pointsReward: 60,
158
+ tags: ["downtown"],
159
+ },
160
+ {
161
+ id: "give-back-volunteer",
162
+ title: "Complete a volunteer shift",
163
+ description: "Help out — staff will share the completion code.",
164
+ category: "GiveBack",
165
+ questType: "Code",
166
+ pointsReward: 100,
167
+ tags: ["volunteer"],
168
+ },
169
+ {
170
+ id: "compete-vote",
171
+ title: "Vote for your favorite",
172
+ description: "Cast your vote — use the code shown after you submit.",
173
+ category: "Compete",
174
+ questType: "Code",
175
+ pointsReward: 25,
176
+ tags: ["festival", "vote"],
177
+ },
178
+ ];
179
+ export function filterSideQuestIdeas(search) {
180
+ const q = search.trim().toLowerCase();
181
+ if (!q)
182
+ return SIDE_QUEST_IDEAS;
183
+ return SIDE_QUEST_IDEAS.filter((idea) => idea.title.toLowerCase().includes(q) ||
184
+ idea.description.toLowerCase().includes(q) ||
185
+ idea.tags.some((t) => t.toLowerCase().includes(q)) ||
186
+ idea.category.toLowerCase().includes(q));
187
+ }
188
+ /** Lifetime achievement catalog (Phase 2 awarding; definitions ship now). */
189
+ export const ADVENTURE_ACHIEVEMENT_CATALOG = [
190
+ {
191
+ id: "explorer",
192
+ name: "Explorer",
193
+ description: "Completed 100 Side Quests",
194
+ threshold: 100,
195
+ },
196
+ {
197
+ id: "foodie",
198
+ name: "Foodie",
199
+ description: "Visited 50 vendors via Support Local quests",
200
+ threshold: 50,
201
+ },
202
+ {
203
+ id: "festival-veteran",
204
+ name: "Festival Veteran",
205
+ description: "Attended 25 festivals with Side Quests",
206
+ threshold: 25,
207
+ },
208
+ {
209
+ id: "transit-hero",
210
+ name: "Transit Hero",
211
+ description: "Rode transit to 15 events",
212
+ threshold: 15,
213
+ },
214
+ ];
215
+ //# sourceMappingURL=sideQuestIdeas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sideQuestIdeas.js","sourceRoot":"","sources":["../src/sideQuestIdeas.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bash-app/bash-common",
3
- "version": "30.307.0",
3
+ "version": "30.308.0",
4
4
  "description": "Common data and scripts to use on the frontend and backend",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -842,6 +842,9 @@ model BashEvent {
842
842
  smsConfirmationsEnabled Boolean @default(false)
843
843
  /// Collect named holder per seat at checkout.
844
844
  namedTicketsEnabled Boolean @default(false)
845
+ /// Max companions a guest may bring (0 = alone, 1 = +1, 2 = +2, null = unlimited).
846
+ /// Applies to RSVP plus-ones and ticketed seats-per-buyer. Null preserves open defaults.
847
+ maxAdditionalGuests Int?
845
848
  attendeeDisplayMode String @default("All") // "All" | "CountOnly" | "NetworkOnly" | "Hidden"
846
849
  /// Optional headline above featured guests on bash detail (curated guest visibility).
847
850
  featuredGuestsHeadline String?
@@ -1038,6 +1041,13 @@ model BashEvent {
1038
1041
  discussionComments EventDiscussionComment[]
1039
1042
  bashEventDonations BashEventDonation[]
1040
1043
 
1044
+ // Adventures / Side Quests
1045
+ sideQuests SideQuest[]
1046
+ eventBadges EventBadge[]
1047
+ sideQuestMilestones SideQuestMilestone[]
1048
+ sideQuestPrizeEntries SideQuestPrizeEntry[]
1049
+ communityQuestGoal CommunityQuestGoal?
1050
+
1041
1051
  // User night itineraries (events in user's "My Night" plan)
1042
1052
  userItineraryItems UserItineraryItem[]
1043
1053
 
@@ -1981,6 +1991,192 @@ model EventReferralReward {
1981
1991
  @@index([bashEventId])
1982
1992
  }
1983
1993
 
1994
+ // --- Adventures / Side Quests (behavior design engine) ---
1995
+
1996
+ enum SideQuestCategory {
1997
+ Explore
1998
+ Connect
1999
+ Discover
2000
+ SupportLocal
2001
+ Compete
2002
+ Transit
2003
+ Create
2004
+ GiveBack
2005
+ }
2006
+
2007
+ /// How the guest proves completion. Phase 1: Qr + Code. Others reserved.
2008
+ enum SideQuestType {
2009
+ Qr
2010
+ Code
2011
+ Gps
2012
+ Photo
2013
+ CheckIn
2014
+ Purchase
2015
+ Vote
2016
+ Sponsor
2017
+ Social
2018
+ Trivia
2019
+ }
2020
+
2021
+ enum EventBadgeAwardSource {
2022
+ SideQuest
2023
+ Milestone
2024
+ Manual
2025
+ Community
2026
+ }
2027
+
2028
+ model SideQuest {
2029
+ id String @id @default(cuid())
2030
+ bashEventId String
2031
+ title String
2032
+ description String?
2033
+ sortOrder Int @default(0)
2034
+ category SideQuestCategory @default(Explore)
2035
+ questType SideQuestType @default(Code)
2036
+ /// Short display code for hosts/guests (e.g. 4-digit). Guests submit this; never treat as the only secret.
2037
+ code String
2038
+ /// SHA-256 hex of normalized code — server verification
2039
+ codeHash String
2040
+ pointsReward Int @default(0)
2041
+ raffleEntriesOnComplete Int @default(0)
2042
+ eventBadgeId String?
2043
+ startsAt DateTime?
2044
+ endsAt DateTime?
2045
+ maxCompletions Int?
2046
+ isHidden Boolean @default(false)
2047
+ unlockedAt DateTime?
2048
+ sponsorLabel String?
2049
+ sponsorServiceId String?
2050
+ createdAt DateTime @default(now())
2051
+ updatedAt DateTime @updatedAt
2052
+
2053
+ bashEvent BashEvent @relation(fields: [bashEventId], references: [id], onDelete: Cascade)
2054
+ eventBadge EventBadge? @relation(fields: [eventBadgeId], references: [id], onDelete: SetNull)
2055
+ completions SideQuestCompletion[]
2056
+ milestonesUnlocking SideQuestMilestone[] @relation("MilestoneUnlocksQuest")
2057
+
2058
+ @@index([bashEventId])
2059
+ @@index([bashEventId, sortOrder])
2060
+ @@index([eventBadgeId])
2061
+ }
2062
+
2063
+ model SideQuestCompletion {
2064
+ id String @id @default(cuid())
2065
+ sideQuestId String
2066
+ userId String
2067
+ completedAt DateTime @default(now())
2068
+ questType SideQuestType
2069
+
2070
+ sideQuest SideQuest @relation(fields: [sideQuestId], references: [id], onDelete: Cascade)
2071
+ user User @relation("SideQuestCompletions", fields: [userId], references: [id], onDelete: Cascade)
2072
+
2073
+ @@unique([sideQuestId, userId])
2074
+ @@index([userId])
2075
+ @@index([sideQuestId])
2076
+ }
2077
+
2078
+ model EventBadge {
2079
+ id String @id @default(cuid())
2080
+ bashEventId String
2081
+ name String
2082
+ description String?
2083
+ imageUrl String
2084
+ createdByUserId String
2085
+ createdAt DateTime @default(now())
2086
+ updatedAt DateTime @updatedAt
2087
+
2088
+ bashEvent BashEvent @relation(fields: [bashEventId], references: [id], onDelete: Cascade)
2089
+ createdBy User @relation("EventBadgesCreated", fields: [createdByUserId], references: [id], onDelete: Cascade)
2090
+ awards EventBadgeAward[]
2091
+ sideQuests SideQuest[]
2092
+ milestones SideQuestMilestone[]
2093
+ communityGoals CommunityQuestGoal[]
2094
+
2095
+ @@index([bashEventId])
2096
+ @@index([createdByUserId])
2097
+ }
2098
+
2099
+ model EventBadgeAward {
2100
+ id String @id @default(cuid())
2101
+ eventBadgeId String
2102
+ userId String
2103
+ awardedAt DateTime @default(now())
2104
+ sourceType EventBadgeAwardSource
2105
+ sourceId String?
2106
+
2107
+ eventBadge EventBadge @relation(fields: [eventBadgeId], references: [id], onDelete: Cascade)
2108
+ user User @relation("EventBadgeAwards", fields: [userId], references: [id], onDelete: Cascade)
2109
+
2110
+ @@unique([eventBadgeId, userId])
2111
+ @@index([userId])
2112
+ }
2113
+
2114
+ model SideQuestMilestone {
2115
+ id String @id @default(cuid())
2116
+ bashEventId String
2117
+ requiredCompletions Int
2118
+ bashPointsReward Int?
2119
+ eventBadgeId String?
2120
+ raffleEntries Int?
2121
+ unlockSideQuestId String?
2122
+ sortOrder Int @default(0)
2123
+ createdAt DateTime @default(now())
2124
+ updatedAt DateTime @updatedAt
2125
+
2126
+ bashEvent BashEvent @relation(fields: [bashEventId], references: [id], onDelete: Cascade)
2127
+ eventBadge EventBadge? @relation(fields: [eventBadgeId], references: [id], onDelete: SetNull)
2128
+ unlockSideQuest SideQuest? @relation("MilestoneUnlocksQuest", fields: [unlockSideQuestId], references: [id], onDelete: SetNull)
2129
+ claims SideQuestMilestoneClaim[]
2130
+
2131
+ @@index([bashEventId])
2132
+ }
2133
+
2134
+ model SideQuestMilestoneClaim {
2135
+ id String @id @default(cuid())
2136
+ milestoneId String
2137
+ userId String
2138
+ claimedAt DateTime @default(now())
2139
+
2140
+ milestone SideQuestMilestone @relation(fields: [milestoneId], references: [id], onDelete: Cascade)
2141
+ user User @relation("SideQuestMilestoneClaims", fields: [userId], references: [id], onDelete: Cascade)
2142
+
2143
+ @@unique([milestoneId, userId])
2144
+ @@index([userId])
2145
+ }
2146
+
2147
+ model SideQuestPrizeEntry {
2148
+ id String @id @default(cuid())
2149
+ bashEventId String
2150
+ userId String
2151
+ entries Int @default(1)
2152
+ sourceCompletionId String?
2153
+ sourceMilestoneId String?
2154
+ sourceType String @default("SideQuest")
2155
+ createdAt DateTime @default(now())
2156
+
2157
+ bashEvent BashEvent @relation(fields: [bashEventId], references: [id], onDelete: Cascade)
2158
+ user User @relation("SideQuestPrizeEntries", fields: [userId], references: [id], onDelete: Cascade)
2159
+
2160
+ @@index([bashEventId, userId])
2161
+ @@index([userId])
2162
+ }
2163
+
2164
+ model CommunityQuestGoal {
2165
+ id String @id @default(cuid())
2166
+ bashEventId String @unique
2167
+ targetCompletions Int
2168
+ currentCompletions Int @default(0)
2169
+ rewardLabel String
2170
+ eventBadgeId String?
2171
+ bashPointsReward Int?
2172
+ unlockedAt DateTime?
2173
+ createdAt DateTime @default(now())
2174
+ updatedAt DateTime @updatedAt
2175
+
2176
+ bashEvent BashEvent @relation(fields: [bashEventId], references: [id], onDelete: Cascade)
2177
+ eventBadge EventBadge? @relation(fields: [eventBadgeId], references: [id], onDelete: SetNull)
2178
+ }
2179
+
1984
2180
  enum BackgroundEffect {
1985
2181
  None
1986
2182
  Confetti
@@ -3414,6 +3610,11 @@ model User {
3414
3610
  competitionVotes CompetitionVote[]
3415
3611
  competitionJudgeAssignments CompetitionJudgeAssignment[] @relation("CompetitionJudgeAssignments")
3416
3612
  competitionJudgeScoresAuthored CompetitionJudgeScore[] @relation("CompetitionJudgeScoresAuthored")
3613
+ sideQuestCompletions SideQuestCompletion[] @relation("SideQuestCompletions")
3614
+ eventBadgesCreated EventBadge[] @relation("EventBadgesCreated")
3615
+ eventBadgeAwards EventBadgeAward[] @relation("EventBadgeAwards")
3616
+ sideQuestMilestoneClaims SideQuestMilestoneClaim[] @relation("SideQuestMilestoneClaims")
3617
+ sideQuestPrizeEntries SideQuestPrizeEntry[] @relation("SideQuestPrizeEntries")
3417
3618
  contacts Contact[]
3418
3619
  contactLists ContactList[] @relation("UserContactLists")
3419
3620
  contactlist ContactList[]
@@ -9050,6 +9251,9 @@ enum CreditSourceType {
9050
9251
  ReferralCodeUsed // Flat bonus for referrer when code drives a ticket/signup
9051
9252
  VenueLoyaltyRedemption // BashPoints moved through a VenueLoyaltyRedemption claim/redeem/refund
9052
9253
  PartnerPromoRedemption // BashPoints spent to unlock a local partner promo code
9254
+ SideQuestCompletion // Completing a Side Quest on a bash
9255
+ SideQuestMilestone // Hitting a Side Quest milestone (e.g. complete N quests)
9256
+ CommunityQuestUnlock // Digital reward when a Community Quest goal unlocks
9053
9257
  }
9054
9258
 
9055
9259
  enum ReferralTier {
@@ -0,0 +1,31 @@
1
+ import {
2
+ resolveMaxPlusOnes,
3
+ resolveMaxSeatsPerBuyer,
4
+ rsvpPartyPolicyGuestCopy,
5
+ seatsForTicketQuantity,
6
+ ticketPartyPolicyGuestCopy,
7
+ } from "../guestPartySize.js";
8
+
9
+ describe("guestPartySize", () => {
10
+ it("resolveMaxSeatsPerBuyer", () => {
11
+ expect(resolveMaxSeatsPerBuyer(0)).toBe(1);
12
+ expect(resolveMaxSeatsPerBuyer(1)).toBe(2);
13
+ expect(resolveMaxSeatsPerBuyer(null)).toBeNull();
14
+ expect(resolveMaxSeatsPerBuyer(2, 1)).toBe(1);
15
+ });
16
+
17
+ it("resolveMaxPlusOnes soft-caps unlimited", () => {
18
+ expect(resolveMaxPlusOnes(null)).toBe(10);
19
+ expect(resolveMaxPlusOnes(0)).toBe(0);
20
+ });
21
+
22
+ it("seatsForTicketQuantity expands group packages", () => {
23
+ expect(seatsForTicketQuantity(1, 6, true)).toBe(6);
24
+ });
25
+
26
+ it("guest copy helpers", () => {
27
+ expect(rsvpPartyPolicyGuestCopy(0)).toMatch(/no plus-ones/i);
28
+ expect(ticketPartyPolicyGuestCopy(1)).toBe("Up to 2 tickets per person");
29
+ expect(ticketPartyPolicyGuestCopy(null)).toBeNull();
30
+ });
31
+ });
@@ -0,0 +1,16 @@
1
+ import { filterSideQuestIdeas, SIDE_QUEST_IDEAS } from "../sideQuestIdeas";
2
+
3
+ describe("sideQuestIdeas", () => {
4
+ it("includes festival and market templates", () => {
5
+ expect(SIDE_QUEST_IDEAS.some((i) => i.tags.includes("festival"))).toBe(
6
+ true
7
+ );
8
+ expect(SIDE_QUEST_IDEAS.some((i) => i.tags.includes("market"))).toBe(true);
9
+ });
10
+
11
+ it("filters by search", () => {
12
+ const hits = filterSideQuestIdeas("transit");
13
+ expect(hits.length).toBeGreaterThan(0);
14
+ expect(hits.every((h) => JSON.stringify(h).toLowerCase().includes("transit") || h.category === "Transit")).toBe(true);
15
+ });
16
+ });
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Event-level guest party size (plus-ones / seats-per-buyer).
3
+ * maxAdditionalGuests: 0 = alone, 1 = +1, 2 = +2, null = unlimited.
4
+ */
5
+
6
+ export const RSVP_PLUS_ONES_UI_SOFT_CAP = 10;
7
+ export const RSVP_PLUS_ONES_API_HARD_CAP = 20;
8
+
9
+ /** Max seats one buyer may hold (owned + cart). null = unlimited. */
10
+ export function resolveMaxSeatsPerBuyer(
11
+ maxAdditionalGuests: number | null | undefined,
12
+ tierMaxTicketsPerUser?: number | null
13
+ ): number | null {
14
+ let eventCap: number | null = null;
15
+ if (maxAdditionalGuests != null && Number.isFinite(maxAdditionalGuests)) {
16
+ eventCap = Math.max(0, Math.floor(maxAdditionalGuests)) + 1;
17
+ }
18
+ const tierCap =
19
+ tierMaxTicketsPerUser != null && Number.isFinite(tierMaxTicketsPerUser)
20
+ ? Math.max(0, Math.floor(tierMaxTicketsPerUser))
21
+ : null;
22
+
23
+ if (eventCap == null && tierCap == null) return null;
24
+ if (eventCap == null) return tierCap;
25
+ if (tierCap == null) return eventCap;
26
+ return Math.min(eventCap, tierCap);
27
+ }
28
+
29
+ /** Max plus-ones for RSVP UI/API. */
30
+ export function resolveMaxPlusOnes(
31
+ maxAdditionalGuests: number | null | undefined,
32
+ softCap = RSVP_PLUS_ONES_UI_SOFT_CAP
33
+ ): number {
34
+ if (maxAdditionalGuests == null) return softCap;
35
+ return Math.max(0, Math.min(softCap, Math.floor(maxAdditionalGuests)));
36
+ }
37
+
38
+ export function seatsForTicketQuantity(
39
+ quantity: number,
40
+ groupTicketSeatCount?: number | null,
41
+ isGroupTicket?: boolean | null
42
+ ): number {
43
+ const qty = Math.max(0, Math.floor(quantity));
44
+ if (isGroupTicket && groupTicketSeatCount && groupTicketSeatCount > 0) {
45
+ return qty * groupTicketSeatCount;
46
+ }
47
+ return qty;
48
+ }
49
+
50
+ export function guestPartyPolicyLabel(
51
+ maxAdditionalGuests: number | null | undefined
52
+ ): string {
53
+ if (maxAdditionalGuests === 0) return "No plus-ones";
54
+ if (maxAdditionalGuests === 1) return "Plus one";
55
+ if (maxAdditionalGuests === 2) return "Plus two";
56
+ return "Unlimited";
57
+ }
58
+
59
+ /** Guest-facing RSVP copy. */
60
+ export function rsvpPartyPolicyGuestCopy(
61
+ maxAdditionalGuests: number | null | undefined
62
+ ): string {
63
+ if (maxAdditionalGuests === 0) return "Just you — no plus-ones";
64
+ if (maxAdditionalGuests === 1) return "You can bring up to 1 guest";
65
+ if (maxAdditionalGuests === 2) return "You can bring up to 2 guests";
66
+ return `You can bring up to ${RSVP_PLUS_ONES_UI_SOFT_CAP} guests`;
67
+ }
68
+
69
+ /** Guest-facing ticketed copy. */
70
+ export function ticketPartyPolicyGuestCopy(
71
+ maxAdditionalGuests: number | null | undefined
72
+ ): string | null {
73
+ if (maxAdditionalGuests == null) return null;
74
+ const seats = maxAdditionalGuests + 1;
75
+ if (seats === 1) return "1 ticket per person";
76
+ return `Up to ${seats} tickets per person`;
77
+ }
78
+
79
+ export function nearCapacityPartyError(spotsLeft: number): string {
80
+ if (spotsLeft <= 0) return "This bash is at capacity.";
81
+ if (spotsLeft === 1) return "Only 1 spot left — you can’t bring that many guests.";
82
+ return `Only ${spotsLeft} spots left — you can’t bring that many guests.`;
83
+ }
package/src/index.ts CHANGED
@@ -7,9 +7,11 @@ export * from "./venueLoyaltyRedemption.js";
7
7
  export * from "./stripeListingSubscriptionMessages.js";
8
8
  export * from "./extendedSchemas.js";
9
9
  export * from "./competitionIdeas.js";
10
+ export * from "./sideQuestIdeas.js";
10
11
  export * from "./icebreakerPrompts.js";
11
12
  export * from "./competitionValidation.js";
12
13
  export * from "./groupTicketUtils.js";
14
+ export * from "./guestPartySize.js";
13
15
  export * from "./utils/groupTicketCartUtils.js";
14
16
  export * from "./partnerStoreTypes.js";
15
17
  export * from "./storeTypes.js";
@@ -177,6 +177,9 @@ export const CreditSourceType = {
177
177
  ReferralCodeUsed: "ReferralCodeUsed",
178
178
  VenueLoyaltyRedemption: "VenueLoyaltyRedemption",
179
179
  PartnerPromoRedemption: "PartnerPromoRedemption",
180
+ SideQuestCompletion: "SideQuestCompletion",
181
+ SideQuestMilestone: "SideQuestMilestone",
182
+ CommunityQuestUnlock: "CommunityQuestUnlock",
180
183
  } as const satisfies Record<CreditSourceTypeEnum, CreditSourceTypeEnum>;
181
184
 
182
185
  export type CreditSourceType = CreditSourceTypeEnum;
@@ -0,0 +1,260 @@
1
+ /**
2
+ * Side Quest starter templates and category display metadata.
3
+ * Behavior design: Action → Prove (quest type) → Reward.
4
+ */
5
+
6
+ export type SideQuestCategoryId =
7
+ | "Explore"
8
+ | "Connect"
9
+ | "Discover"
10
+ | "SupportLocal"
11
+ | "Compete"
12
+ | "Transit"
13
+ | "Create"
14
+ | "GiveBack";
15
+
16
+ export type SideQuestTypeId =
17
+ | "Qr"
18
+ | "Code"
19
+ | "Gps"
20
+ | "Photo"
21
+ | "CheckIn"
22
+ | "Purchase"
23
+ | "Vote"
24
+ | "Sponsor"
25
+ | "Social"
26
+ | "Trivia";
27
+
28
+ export const SIDE_QUEST_CATEGORY_META: Record<
29
+ SideQuestCategoryId,
30
+ { label: string; emoji: string }
31
+ > = {
32
+ Explore: { label: "Explore", emoji: "🧭" },
33
+ Connect: { label: "Connect", emoji: "🤝" },
34
+ Discover: { label: "Discover", emoji: "🎵" },
35
+ SupportLocal: { label: "Support Local", emoji: "🛍️" },
36
+ Compete: { label: "Compete", emoji: "🏆" },
37
+ Transit: { label: "Transit", emoji: "🚆" },
38
+ Create: { label: "Create", emoji: "📸" },
39
+ GiveBack: { label: "Give Back", emoji: "❤️" },
40
+ };
41
+
42
+ /** Phase 1 host-selectable quest types */
43
+ export const SIDE_QUEST_PHASE1_TYPES: SideQuestTypeId[] = ["Qr", "Code"];
44
+
45
+ export const SIDE_QUEST_TYPE_META: Record<
46
+ SideQuestTypeId,
47
+ { label: string; description: string; phase1: boolean }
48
+ > = {
49
+ Qr: {
50
+ label: "QR Quest",
51
+ description: "Guest scans a printed QR at the location.",
52
+ phase1: true,
53
+ },
54
+ Code: {
55
+ label: "Code Quest",
56
+ description: "Guest enters a short code shown on-site.",
57
+ phase1: true,
58
+ },
59
+ Gps: {
60
+ label: "GPS Quest",
61
+ description: "Guest checks in near a location.",
62
+ phase1: false,
63
+ },
64
+ Photo: {
65
+ label: "Photo Quest",
66
+ description: "Guest uploads a photo as proof.",
67
+ phase1: false,
68
+ },
69
+ CheckIn: {
70
+ label: "Check-in Quest",
71
+ description: "Tied to event ticket check-in.",
72
+ phase1: false,
73
+ },
74
+ Purchase: {
75
+ label: "Purchase Quest",
76
+ description: "Completes after a qualifying purchase.",
77
+ phase1: false,
78
+ },
79
+ Vote: {
80
+ label: "Vote Quest",
81
+ description: "Completes after voting in a competition.",
82
+ phase1: false,
83
+ },
84
+ Sponsor: {
85
+ label: "Sponsor Quest",
86
+ description: "Visit or engage with a sponsor booth.",
87
+ phase1: false,
88
+ },
89
+ Social: {
90
+ label: "Social Quest",
91
+ description: "Share or tag on social.",
92
+ phase1: false,
93
+ },
94
+ Trivia: {
95
+ label: "Trivia Quest",
96
+ description: "Answer a question correctly.",
97
+ phase1: false,
98
+ },
99
+ };
100
+
101
+ export interface SideQuestIdea {
102
+ id: string;
103
+ title: string;
104
+ description: string;
105
+ category: SideQuestCategoryId;
106
+ questType: SideQuestTypeId;
107
+ pointsReward: number;
108
+ tags: string[];
109
+ }
110
+
111
+ export const SIDE_QUEST_IDEAS: SideQuestIdea[] = [
112
+ {
113
+ id: "festival-transit",
114
+ title: "Ride transit to the festival",
115
+ description: "Take FrontRunner, TRAX, or the bus — scan the code at the station booth.",
116
+ category: "Transit",
117
+ questType: "Qr",
118
+ pointsReward: 100,
119
+ tags: ["festival", "transit"],
120
+ },
121
+ {
122
+ id: "festival-vendor",
123
+ title: "Try food from a local vendor",
124
+ description: "Support a food vendor on site and grab their quest code.",
125
+ category: "SupportLocal",
126
+ questType: "Code",
127
+ pointsReward: 50,
128
+ tags: ["festival", "food"],
129
+ },
130
+ {
131
+ id: "festival-artists",
132
+ title: "Watch 3 different artists",
133
+ description: "Catch three sets — collect the stage code after the third.",
134
+ category: "Discover",
135
+ questType: "Code",
136
+ pointsReward: 75,
137
+ tags: ["festival", "music"],
138
+ },
139
+ {
140
+ id: "festival-photo",
141
+ title: "Take a photo at the landmark",
142
+ description: "Find the landmark and scan the QR nearby.",
143
+ category: "Create",
144
+ questType: "Qr",
145
+ pointsReward: 25,
146
+ tags: ["festival", "photo"],
147
+ },
148
+ {
149
+ id: "market-three-vendors",
150
+ title: "Buy from 3 vendors",
151
+ description: "Support three market stalls — get the code from the info booth when done.",
152
+ category: "SupportLocal",
153
+ questType: "Code",
154
+ pointsReward: 75,
155
+ tags: ["market"],
156
+ },
157
+ {
158
+ id: "market-meet-farmer",
159
+ title: "Meet a farmer",
160
+ description: "Say hello to a grower and scan their booth QR.",
161
+ category: "Connect",
162
+ questType: "Qr",
163
+ pointsReward: 50,
164
+ tags: ["market"],
165
+ },
166
+ {
167
+ id: "conference-keynote",
168
+ title: "Attend a keynote",
169
+ description: "Sit in on a keynote — scan the room QR on the way out.",
170
+ category: "Discover",
171
+ questType: "Qr",
172
+ pointsReward: 50,
173
+ tags: ["conference"],
174
+ },
175
+ {
176
+ id: "conference-meet-five",
177
+ title: "Meet five new people",
178
+ description: "Network intentionally — enter the lounge code when you've made five intros.",
179
+ category: "Connect",
180
+ questType: "Code",
181
+ pointsReward: 75,
182
+ tags: ["conference"],
183
+ },
184
+ {
185
+ id: "campus-club",
186
+ title: "Join a club fair booth",
187
+ description: "Stop by a student org table and scan their QR.",
188
+ category: "Connect",
189
+ questType: "Qr",
190
+ pointsReward: 40,
191
+ tags: ["campus"],
192
+ },
193
+ {
194
+ id: "downtown-mural",
195
+ title: "Find a hidden mural",
196
+ description: "Hunt the mural and scan the nearby QR.",
197
+ category: "Explore",
198
+ questType: "Qr",
199
+ pointsReward: 60,
200
+ tags: ["downtown"],
201
+ },
202
+ {
203
+ id: "give-back-volunteer",
204
+ title: "Complete a volunteer shift",
205
+ description: "Help out — staff will share the completion code.",
206
+ category: "GiveBack",
207
+ questType: "Code",
208
+ pointsReward: 100,
209
+ tags: ["volunteer"],
210
+ },
211
+ {
212
+ id: "compete-vote",
213
+ title: "Vote for your favorite",
214
+ description: "Cast your vote — use the code shown after you submit.",
215
+ category: "Compete",
216
+ questType: "Code",
217
+ pointsReward: 25,
218
+ tags: ["festival", "vote"],
219
+ },
220
+ ];
221
+
222
+ export function filterSideQuestIdeas(search: string): SideQuestIdea[] {
223
+ const q = search.trim().toLowerCase();
224
+ if (!q) return SIDE_QUEST_IDEAS;
225
+ return SIDE_QUEST_IDEAS.filter(
226
+ (idea) =>
227
+ idea.title.toLowerCase().includes(q) ||
228
+ idea.description.toLowerCase().includes(q) ||
229
+ idea.tags.some((t) => t.toLowerCase().includes(q)) ||
230
+ idea.category.toLowerCase().includes(q)
231
+ );
232
+ }
233
+
234
+ /** Lifetime achievement catalog (Phase 2 awarding; definitions ship now). */
235
+ export const ADVENTURE_ACHIEVEMENT_CATALOG = [
236
+ {
237
+ id: "explorer",
238
+ name: "Explorer",
239
+ description: "Completed 100 Side Quests",
240
+ threshold: 100,
241
+ },
242
+ {
243
+ id: "foodie",
244
+ name: "Foodie",
245
+ description: "Visited 50 vendors via Support Local quests",
246
+ threshold: 50,
247
+ },
248
+ {
249
+ id: "festival-veteran",
250
+ name: "Festival Veteran",
251
+ description: "Attended 25 festivals with Side Quests",
252
+ threshold: 25,
253
+ },
254
+ {
255
+ id: "transit-hero",
256
+ name: "Transit Hero",
257
+ description: "Rode transit to 15 events",
258
+ threshold: 15,
259
+ },
260
+ ] as const;