@bash-app/bash-common 30.310.0 → 30.314.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.
@@ -268,14 +268,18 @@ export const PRIVATE_USER_ACCOUNT_TO_SELECT = {
268
268
  },
269
269
  } satisfies Prisma.UserSelect;
270
270
 
271
- export interface SponsoredEventExt extends SponsoredEvent {}
271
+ export type SponsoredEventExt = SponsoredEvent;
272
272
 
273
273
  /** Minimal service identity used wherever a competition prize/offer just needs to point at a listing. */
274
- export interface ServiceRefLite {
275
- id: string;
276
- serviceName: string | null;
277
- coverPhoto: string | null;
278
- }
274
+ export const SERVICE_REF_LITE_SELECT = {
275
+ id: true,
276
+ serviceName: true,
277
+ coverPhoto: true,
278
+ } satisfies Prisma.ServiceSelect;
279
+
280
+ export type ServiceRefLite = Prisma.ServiceGetPayload<{
281
+ select: typeof SERVICE_REF_LITE_SELECT;
282
+ }>;
279
283
 
280
284
  export interface PrizeExt extends Prize {
281
285
  winner?: PublicUser | null;
@@ -283,6 +287,18 @@ export interface PrizeExt extends Prize {
283
287
  sourceService?: ServiceRefLite | null;
284
288
  }
285
289
 
290
+ /** Minimal prize-slot identity used wherever a sponsor offer just needs to point at the slot it's filling. */
291
+ export const PRIZE_SLOT_REF_SELECT = {
292
+ id: true,
293
+ name: true,
294
+ placeName: true,
295
+ sponsorCostCents: true,
296
+ } satisfies Prisma.PrizeSelect;
297
+
298
+ export type PrizeSlotRef = Prisma.PrizeGetPayload<{
299
+ select: typeof PRIZE_SLOT_REF_SELECT;
300
+ }>;
301
+
286
302
  export interface CompetitionPrizeOfferExt {
287
303
  id: string;
288
304
  competitionId: string;
@@ -300,17 +316,12 @@ export interface CompetitionPrizeOfferExt {
300
316
  respondedAt?: Date | string | null;
301
317
  offeredBy?: PublicUser;
302
318
  sourceService?: ServiceRefLite | null;
303
- targetPrize?: {
304
- id: string;
305
- name: string;
306
- placeName: string | null;
307
- sponsorCostCents: number | null;
308
- } | null;
319
+ targetPrize?: PrizeSlotRef | null;
309
320
  }
310
321
 
311
322
  /** One competition participant row + resolved user; shared by CompetitionExt.participants and the host roster endpoint. */
312
323
  export interface CompetitionParticipantExt extends CompetitionParticipant {
313
- user?: Pick<PublicUser, "uploadedImage" | "image"> | null;
324
+ user?: PublicUser | null;
314
325
  }
315
326
 
316
327
  /** Competition row + relations; Override keeps new columns visible before consumers refresh Prisma. */
@@ -516,24 +527,27 @@ export type BashEventUpsertWireInput = Override<
516
527
  }
517
528
  >;
518
529
 
530
+ /** Minimal ticket-holder identity — narrower than PublicUser/PublicTeaserUser; used wherever a ticket
531
+ * relation just needs to identify who owns/holds it (not a full public profile). */
532
+ export const TICKET_HOLDER_USER_SELECT = {
533
+ id: true,
534
+ email: true,
535
+ givenName: true,
536
+ familyName: true,
537
+ } satisfies Prisma.UserSelect;
538
+
539
+ export type TicketHolderUser = Prisma.UserGetPayload<{
540
+ select: typeof TICKET_HOLDER_USER_SELECT;
541
+ }>;
542
+
519
543
  export const TICKET_TIER_DATA_TO_INCLUDE = {
520
544
  tickets: {
521
545
  include: {
522
546
  owner: {
523
- select: {
524
- id: true,
525
- email: true,
526
- givenName: true,
527
- familyName: true,
528
- },
547
+ select: TICKET_HOLDER_USER_SELECT,
529
548
  },
530
549
  forUser: {
531
- select: {
532
- id: true,
533
- email: true,
534
- givenName: true,
535
- familyName: true,
536
- },
550
+ select: TICKET_HOLDER_USER_SELECT,
537
551
  },
538
552
  },
539
553
  },
@@ -583,7 +597,7 @@ export const BASH_EVENT_DATA_TO_INCLUDE = {
583
597
  select: FRONT_END_USER_DATA_TO_SELECT,
584
598
  },
585
599
  sourceService: {
586
- select: { id: true, serviceName: true, coverPhoto: true },
600
+ select: SERVICE_REF_LITE_SELECT,
587
601
  },
588
602
  },
589
603
  },
@@ -673,9 +687,15 @@ export const VENUE_DATA_TO_REMOVE: RemoveCommonProperties<
673
687
  // 'bashEvents',
674
688
  ] as const;
675
689
 
676
- export const VENDOR_DATA_TO_INCLUDE = {
690
+ /** Shared by Vendor/EventService/EntertainmentService/Exhibitor/Sponsor includes — each model has
691
+ * its own identically-shaped `crowdSize`/`serviceRange` relations (attendance preferences). */
692
+ export const SERVICE_SUBTYPE_CROWD_RANGE_INCLUDE = {
677
693
  crowdSize: true,
678
694
  serviceRange: true,
695
+ } as const;
696
+
697
+ export const VENDOR_DATA_TO_INCLUDE = {
698
+ ...SERVICE_SUBTYPE_CROWD_RANGE_INCLUDE,
679
699
  } satisfies Prisma.VendorInclude;
680
700
 
681
701
  export const VOLUNTEER_DATA_TO_INCLUDE = {
@@ -707,24 +727,20 @@ export type VolunteerServiceExt = Prisma.VolunteerServiceGetPayload<{
707
727
  export const VENUE_DATA_TO_INCLUDE = {} satisfies Prisma.VenueInclude;
708
728
 
709
729
  export const EVENT_SERVICE_DATA_TO_INCLUDE = {
710
- crowdSize: true,
711
- serviceRange: true,
730
+ ...SERVICE_SUBTYPE_CROWD_RANGE_INCLUDE,
712
731
  formatOptions: true,
713
732
  } satisfies Prisma.EventServiceInclude;
714
733
 
715
734
  export const ENTERTAINMENT_SERVICE_DATA_TO_INCLUDE = {
716
- crowdSize: true,
717
- serviceRange: true,
735
+ ...SERVICE_SUBTYPE_CROWD_RANGE_INCLUDE,
718
736
  } satisfies Prisma.EntertainmentServiceInclude;
719
737
 
720
738
  export const SPONSOR_DATA_TO_INCLUDE = {
721
- crowdSize: true,
722
- serviceRange: true,
739
+ ...SERVICE_SUBTYPE_CROWD_RANGE_INCLUDE,
723
740
  } satisfies Prisma.SponsorInclude;
724
741
 
725
742
  export const EXHIBITOR_DATA_TO_INCLUDE = {
726
- crowdSize: true,
727
- serviceRange: true,
743
+ ...SERVICE_SUBTYPE_CROWD_RANGE_INCLUDE,
728
744
  } satisfies Prisma.ExhibitorInclude;
729
745
 
730
746
  // Lightweight include for public service listings (browse pages).
@@ -928,10 +944,9 @@ export interface ServiceBookingAddOnExt extends ServiceBookingAddOn {
928
944
  export interface ServiceBookingPackageExt extends ServiceBookingPackage {
929
945
  package: ServicePackageExt;
930
946
  }
931
- export interface ServiceBookingPriceBreakdownExt
932
- extends ServiceBookingPriceBreakdown {}
947
+ export type ServiceBookingPriceBreakdownExt = ServiceBookingPriceBreakdown;
933
948
 
934
- export interface ServiceBookingFeeExt extends ServiceBookingFee {}
949
+ export type ServiceBookingFeeExt = ServiceBookingFee;
935
950
  export interface ServiceBookingDayExt extends ServiceBookingDay {
936
951
  addOns: ServiceBookingAddOnExt[];
937
952
  packages: ServiceBookingPackageExt[];
@@ -1169,32 +1184,28 @@ export type ServiceExtNoIds = Omit<
1169
1184
  | "serviceRatesAssociationId"
1170
1185
  | "serviceId"
1171
1186
  >;
1172
- export interface EventServiceExt extends EventService {
1187
+ /** Attendance-preference overlay shared by every bookable service subtype — mirrors
1188
+ * SERVICE_SUBTYPE_CROWD_RANGE_INCLUDE so the type and the select/include it's derived from stay in sync. */
1189
+ export interface ServiceSubtypeCrowdRange {
1173
1190
  crowdSize?: AmountOfGuests;
1174
1191
  serviceRange?: ServiceRange;
1192
+ }
1193
+
1194
+ export interface EventServiceExt extends EventService, ServiceSubtypeCrowdRange {
1175
1195
  formatOptions?: ServiceFormatOption[];
1176
1196
  }
1177
1197
 
1178
1198
  export interface EntertainmentServiceExt
1179
- extends Omit<EntertainmentService, "notableVenueEntries"> {
1180
- crowdSize?: AmountOfGuests;
1181
- serviceRange?: ServiceRange;
1199
+ extends Omit<EntertainmentService, "notableVenueEntries">,
1200
+ ServiceSubtypeCrowdRange {
1182
1201
  notableVenueEntries?: EntertainmentNotableVenueEntry[];
1183
1202
  }
1184
1203
 
1185
- export interface ExhibitorExt extends Exhibitor {
1186
- crowdSize?: AmountOfGuests;
1187
- serviceRange?: ServiceRange;
1188
- }
1204
+ export interface ExhibitorExt extends Exhibitor, ServiceSubtypeCrowdRange {}
1189
1205
 
1190
- export interface SponsorExt extends Sponsor {
1191
- crowdSize?: AmountOfGuests;
1192
- serviceRange?: ServiceRange;
1193
- }
1206
+ export interface SponsorExt extends Sponsor, ServiceSubtypeCrowdRange {}
1194
1207
 
1195
- export interface VendorExt extends Vendor {
1196
- crowdSize?: AmountOfGuests;
1197
- serviceRange?: ServiceRange;
1208
+ export interface VendorExt extends Vendor, ServiceSubtypeCrowdRange {
1198
1209
  spaceRequirements?: VendorSpaceRequirements;
1199
1210
  insurance?: VendorInsurance;
1200
1211
  permits?: VendorPermit[];
@@ -1203,6 +1214,108 @@ export interface VendorExt extends Vendor {
1203
1214
  };
1204
1215
  }
1205
1216
 
1217
+ //-------------------------------------------------------------------------------------------------------------------------------
1218
+ // Partner (Vendor/Exhibitor/Sponsor) booking requests
1219
+ //
1220
+ // VendorBookingRequest/ExhibitorBookingRequest/SponsorBookingRequest are three separate Prisma
1221
+ // models (a real merge into one polymorphic table is a future schema migration — see the
1222
+ // bash-common schema/type consolidation plan). Until then, these GetPayload-derived types give
1223
+ // the API and app a single shared, real contract instead of hand-typed hand-drift per package.
1224
+ //-------------------------------------------------------------------------------------------------------------------------------
1225
+
1226
+ /** Minimal contact identity embedded on a partner booking request (hostUser, or the service owner). */
1227
+ export const PARTNER_BOOKING_CONTACT_SELECT = {
1228
+ id: true,
1229
+ email: true,
1230
+ givenName: true,
1231
+ familyName: true,
1232
+ } satisfies Prisma.UserSelect;
1233
+
1234
+ export type PartnerBookingContact = Prisma.UserGetPayload<{
1235
+ select: typeof PARTNER_BOOKING_CONTACT_SELECT;
1236
+ }>;
1237
+
1238
+ /** Minimal event ref embedded on a partner booking request. */
1239
+ export const PARTNER_BOOKING_BASH_EVENT_SELECT = {
1240
+ id: true,
1241
+ title: true,
1242
+ startDateTime: true,
1243
+ endDateTime: true,
1244
+ } satisfies Prisma.BashEventSelect;
1245
+
1246
+ export type PartnerBookingBashEventRef = Prisma.BashEventGetPayload<{
1247
+ select: typeof PARTNER_BOOKING_BASH_EVENT_SELECT;
1248
+ }>;
1249
+
1250
+ export const VENDOR_BOOKING_REQUEST_INCLUDE = {
1251
+ hostUser: { select: PARTNER_BOOKING_CONTACT_SELECT },
1252
+ vendorService: { include: { owner: { select: PARTNER_BOOKING_CONTACT_SELECT } } },
1253
+ bashEvent: { select: PARTNER_BOOKING_BASH_EVENT_SELECT },
1254
+ } satisfies Prisma.VendorBookingRequestInclude;
1255
+
1256
+ export type VendorBookingRequestExt = Prisma.VendorBookingRequestGetPayload<{
1257
+ include: typeof VENDOR_BOOKING_REQUEST_INCLUDE;
1258
+ }>;
1259
+
1260
+ export const EXHIBITOR_BOOKING_REQUEST_INCLUDE = {
1261
+ hostUser: { select: PARTNER_BOOKING_CONTACT_SELECT },
1262
+ exhibitorService: { include: { owner: { select: PARTNER_BOOKING_CONTACT_SELECT } } },
1263
+ bashEvent: { select: PARTNER_BOOKING_BASH_EVENT_SELECT },
1264
+ } satisfies Prisma.ExhibitorBookingRequestInclude;
1265
+
1266
+ export type ExhibitorBookingRequestExt = Prisma.ExhibitorBookingRequestGetPayload<{
1267
+ include: typeof EXHIBITOR_BOOKING_REQUEST_INCLUDE;
1268
+ }>;
1269
+
1270
+ export const SPONSOR_BOOKING_REQUEST_INCLUDE = {
1271
+ hostUser: { select: PARTNER_BOOKING_CONTACT_SELECT },
1272
+ sponsorService: { include: { owner: { select: PARTNER_BOOKING_CONTACT_SELECT } } },
1273
+ bashEvent: { select: PARTNER_BOOKING_BASH_EVENT_SELECT },
1274
+ } satisfies Prisma.SponsorBookingRequestInclude;
1275
+
1276
+ export type SponsorBookingRequestExt = Prisma.SponsorBookingRequestGetPayload<{
1277
+ include: typeof SPONSOR_BOOKING_REQUEST_INCLUDE;
1278
+ }>;
1279
+
1280
+ /** Fields common to all three partner booking request models (same name + type on every model).
1281
+ * `status` is intentionally excluded — Vendor/Exhibitor/SponsorBookingStatus are separate (if
1282
+ * byte-identical) enums, so each Ext type keeps its own nominal status field. */
1283
+ export type PartnerBookingRequestBase = Pick<
1284
+ VendorBookingRequestExt,
1285
+ | "id"
1286
+ | "createdAt"
1287
+ | "updatedAt"
1288
+ | "hostUserId"
1289
+ | "bashEventId"
1290
+ | "expectedGuests"
1291
+ | "eventDuration"
1292
+ | "eventDescription"
1293
+ | "specialRequests"
1294
+ | "contactPreference"
1295
+ | "urgency"
1296
+ | "paymentTiming"
1297
+ | "depositPercentage"
1298
+ | "competitorRestrictions"
1299
+ | "cancellationPolicy"
1300
+ | "pricingModelAllowList"
1301
+ | "paymentAmount"
1302
+ | "paymentStatus"
1303
+ | "stripePaymentIntentId"
1304
+ | "paidAt"
1305
+ | "respondedAt"
1306
+ | "feeStructure"
1307
+ | "percentageRate"
1308
+ | "hostUser"
1309
+ | "bashEvent"
1310
+ >;
1311
+
1312
+ /** Discriminated union of the three partner booking request types — `partnerType` is attached
1313
+ * by the API (it isn't a DB column) so callers can narrow without checking which service-ref key is present. */
1314
+ export type PartnerBookingRequest =
1315
+ | ({ partnerType: "vendor" } & VendorBookingRequestExt)
1316
+ | ({ partnerType: "exhibitor" } & ExhibitorBookingRequestExt)
1317
+ | ({ partnerType: "sponsor" } & SponsorBookingRequestExt);
1318
+
1206
1319
  // Future type for venue unavailable dates (not yet implemented in database)
1207
1320
  // To implement: Add VenueUnavailableDate model to Prisma schema
1208
1321
  export interface UnavailableDate {
@@ -1595,12 +1708,40 @@ export const USER_DATA_SELECT_REVIEWS_COMMENTS = {
1595
1708
  },
1596
1709
  } satisfies Prisma.UserSelect;
1597
1710
 
1711
+ /** Plain `reviews` shape queried by `FRONT_END_USER_DATA_TO_SELECT` alone (no nested `comments`). */
1712
+ type PublicUserPlainReview = Prisma.UserGetPayload<{
1713
+ select: typeof FRONT_END_USER_DATA_TO_SELECT;
1714
+ }>["reviews"][number];
1715
+
1716
+ /** `reviews` shape when a query additionally merges in `USER_DATA_SELECT_REVIEWS_COMMENTS` on top of
1717
+ * `FRONT_END_USER_DATA_TO_SELECT` (nested `comments` included). */
1718
+ export type PublicUserReviewWithComments = Prisma.UserGetPayload<{
1719
+ select: typeof USER_DATA_SELECT_REVIEWS_COMMENTS;
1720
+ }>["reviews"][number];
1721
+
1722
+ type PublicUserBase = Prisma.UserGetPayload<{
1723
+ select: typeof FRONT_END_USER_DATA_TO_SELECT;
1724
+ }>;
1725
+
1726
+ /** Real `User` select shape for public profile surfaces — derived via `GetPayload` (like `PublicTeaserUser`)
1727
+ * so relation/computed fields (e.g. `reviews`, `contacts`) can't silently drift from what
1728
+ * `FRONT_END_USER_DATA_TO_SELECT` actually queries. The four relation fields below stay optional (not
1729
+ * required-but-nullable, as a strict `GetPayload` would make them) because some call sites — e.g. auth/session
1730
+ * flows — legitimately pass a scalar-only `User` row through this type without ever including them.
1731
+ * `reviews` is additionally re-widened to a union since some call sites merge in
1732
+ * `USER_DATA_SELECT_REVIEWS_COMMENTS` for nested review comments. */
1598
1733
  export type PublicUser = Omit<
1599
- Pick<UserExt, keyof typeof FRONT_END_USER_DATA_TO_SELECT>,
1600
- "userSubscription"
1601
- > & {
1602
- userSubscription?: PublicUserSubscription | null;
1603
- } & Partial<Pick<UserExt, keyof typeof USER_DATA_SELECT_REVIEWS_COMMENTS>>;
1734
+ PublicUserBase,
1735
+ "reviews" | "contacts" | "socialMediaProfiles" | "userSubscription"
1736
+ > &
1737
+ Partial<Pick<PublicUserBase, "contacts" | "socialMediaProfiles" | "userSubscription">> & {
1738
+ reviews?: (PublicUserPlainReview | PublicUserReviewWithComments)[] | null;
1739
+ };
1740
+
1741
+ /** Self-account (`/me`) select shape — derived via `GetPayload` the same way `PublicUser` is. */
1742
+ export type PrivateUser = Prisma.UserGetPayload<{
1743
+ select: typeof PRIVATE_USER_ACCOUNT_TO_SELECT;
1744
+ }>;
1604
1745
 
1605
1746
  export type PublicStripeAccount = Pick<
1606
1747
  StripeAccountExt,
package/src/index.ts CHANGED
@@ -35,6 +35,8 @@ export * from "./userReportTypes.js";
35
35
  export * from "./mirroredPrismaEnums.js";
36
36
  export * from "./utils/featuredDiscoveryGeo.js";
37
37
  export * from "./utils/organizationEntitlements.js";
38
+ export * from "./serviceTypeLabels.js";
39
+ export * from "./targetAudienceLabels.js";
38
40
 
39
41
  // Re-export ALL Prisma enums as values (usable as runtime constants, e.g. ServiceTypes.Entertainment)
40
42
  // Excludes enums already re-exported by definitions.ts, mirroredPrismaEnums.ts, and membershipDefinitions.ts:
@@ -86,6 +86,22 @@ export const ServiceBookingSettlementStatus = {
86
86
 
87
87
  export type ServiceBookingSettlementStatus = ServiceBookingSettlementStatusEnum;
88
88
 
89
+ /**
90
+ * Display label for `ServiceBookingSettlementStatus` — consolidated from the hand-typed
91
+ * `STATUS_UI.label` copy in `EventPromoterBookingCard.tsx`. Icon/color styling stays local to
92
+ * that component (UI-specific, not a bash-common concern); only the text is shared here.
93
+ */
94
+ export const ServiceBookingSettlementStatusLabel: Record<
95
+ ServiceBookingSettlementStatus,
96
+ string
97
+ > = {
98
+ Pending: "Awaiting settle",
99
+ Settled: "Settled",
100
+ SettlementPaymentFailed: "Payment failed",
101
+ SettlementHeld: "Held for review",
102
+ SettlementDisputed: "Disputed",
103
+ };
104
+
89
105
  /**
90
106
  * Mirrors Prisma `PricingModel`. Includes the Phase 1 additions
91
107
  * `PER_PAID_ATTENDEE` and `PER_BASHPOINTS_ATTENDEE` introduced by the
@@ -0,0 +1,24 @@
1
+ import { ServiceTypes } from "@prisma/client";
2
+
3
+ /**
4
+ * Human-readable label for every `ServiceTypes` value — the raw enum ("EventServices",
5
+ * "EntertainmentServices") is not fit for display copy.
6
+ *
7
+ * Single source of truth for what was previously four drifted, hand-typed copies:
8
+ * `homeServicesSort.ts`, `CategoryRequestsPage.tsx`, `serviceCategorySuggestionApi.ts`,
9
+ * and the `TAB_CONFIG` labels in `HowServices.tsx`.
10
+ *
11
+ * Note: this is distinct from `SERVICE_TYPE_DISPLAY_LABEL` in `definitions.ts`, which only
12
+ * covers the two values `COMPLEMENTARY_SERVICE_TYPE` can produce (Vendors/EventServices) for
13
+ * "also list as" copy — that narrower map stays as-is.
14
+ */
15
+ export const SERVICE_TYPE_LABELS: Record<ServiceTypes, string> = {
16
+ [ServiceTypes.EntertainmentServices]: "Entertainment",
17
+ [ServiceTypes.EventServices]: "Event Services",
18
+ [ServiceTypes.Vendors]: "Vendors",
19
+ [ServiceTypes.Exhibitors]: "Exhibitors",
20
+ [ServiceTypes.Sponsors]: "Sponsors",
21
+ [ServiceTypes.Venues]: "Venues",
22
+ [ServiceTypes.Organizations]: "Organizations",
23
+ [ServiceTypes.Volunteers]: "Volunteers",
24
+ };
@@ -0,0 +1,54 @@
1
+ import { AgeRange, Education, Gender, Occupation } from "@prisma/client";
2
+
3
+ /**
4
+ * Display labels for `BashEvent`/`Service` target-audience demographics — consolidated from
5
+ * byte-identical copies that lived in `WhoTargetAudience.tsx` (bash event wizard) and
6
+ * `ServicesTargetAudience.tsx` (service wizard). Follows the `IncomeRangeLabel` precedent in
7
+ * `definitions.ts`.
8
+ */
9
+ export const AgeRangeLabel: Record<AgeRange, string> = {
10
+ NoPreference: "Anyone",
11
+ Sixteen_17: "16-17",
12
+ EighteenPlus: "18+",
13
+ Eighteen_20: "18-20",
14
+ TwentyOnePlus: "21+",
15
+ TwentyOne_25: "21-25",
16
+ TwentySix_34: "26-34",
17
+ ThirtyFive_49: "35-49",
18
+ Fifty_64: "50-64",
19
+ SixtyFivePlus: "65+",
20
+ };
21
+
22
+ export const GenderLabel: Record<Gender, string> = {
23
+ NoPreference: "Anyone",
24
+ Male: "Male",
25
+ Female: "Female",
26
+ Other: "Other",
27
+ };
28
+
29
+ export const OccupationLabel: Record<Occupation, string> = {
30
+ NoPreference: "Anyone",
31
+ Students: "Students",
32
+ Entrepreneurs: "Entrepreneurs",
33
+ SmallBusinesses: "Small Businesses",
34
+ Corporations: "Corporations",
35
+ Professionals: "Professionals",
36
+ Creatives: "Creatives",
37
+ AngelInvestors: "Angel Investors",
38
+ FamilyOffices: "Family Offices",
39
+ Retirees: "Retirees",
40
+ Academics: "Academics",
41
+ Government: "Government",
42
+ NonProfits: "Non-Profits",
43
+ };
44
+
45
+ export const EducationLabel: Record<Education, string> = {
46
+ NoPreference: "Anyone",
47
+ HighSchool: "High School",
48
+ SomeCollege: "Some College",
49
+ InCollege: "In College",
50
+ GraduateStudent: "Graduate Students",
51
+ Bachelors: "Bachelor's Degree",
52
+ Masters: "Master's Degree",
53
+ Doctorate: "Doctorate",
54
+ };
@@ -53,7 +53,7 @@ export type ServiceBookingRequiredData = MakeNullablePropsOptional<
53
53
  MakeOptional<
54
54
  ServiceBookingExt,
55
55
  | "id"
56
- | "isVendorBid"
56
+ | "isProviderInitiatedOffer"
57
57
  | "bashEventId"
58
58
  | "vendorEventDetails"
59
59
  | "serviceId"