@bash-app/bash-common 29.14.1 → 29.14.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bash-app/bash-common",
3
- "version": "29.14.1",
3
+ "version": "29.14.3",
4
4
  "description": "Common data and scripts to use on the frontend and backend",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -594,16 +594,21 @@ enum Privacy {
594
594
  }
595
595
 
596
596
  model TargetAudience {
597
- id String @id @default(cuid())
598
- ageRange AgeRange[]
599
- gender Gender[]
600
- occupation Occupation[]
601
- education Education[]
602
- showOnDetailPage Boolean @default(true)
603
- bashEvent BashEvent?
604
- service Service?
597
+ id String @id @default(cuid())
598
+ primaryAgeRange AgeRange[]
599
+ secondaryAgeRange AgeRange[]
600
+ primaryGender Gender[]
601
+ secondaryGender Gender[]
602
+ primaryOccupation Occupation[]
603
+ secondaryOccupation Occupation[]
604
+ primaryEducation Education[]
605
+ secondaryEducation Education[]
606
+ showOnDetailPage Boolean @default(true)
607
+ bashEvent BashEvent?
608
+ service Service?
605
609
  }
606
610
 
611
+
607
612
  enum AgeRange {
608
613
  Sixteen_17
609
614
  Eighteen_20
@@ -102,6 +102,62 @@ export const SERVICE_DATA_TO_INCLUDE = {
102
102
  },
103
103
  } satisfies Prisma.ServiceInclude;
104
104
 
105
+ // export type ServiceSpecificName = keyof Pick<
106
+ // ServiceExt,
107
+ // "eventService" |
108
+ // "entertainmentService" |
109
+ // "vendor" |
110
+ // "exhibitor" |
111
+ // "sponsor" |
112
+ // "venue" |
113
+ // "organization"
114
+ // >;
115
+
116
+ // Define the keys and values in a single object
117
+ const serviceKeysObject = {
118
+ eventService: true,
119
+ entertainmentService: true,
120
+ vendor: true,
121
+ exhibitor: true,
122
+ sponsor: true,
123
+ venue: true,
124
+ organization: true,
125
+ } as const;
126
+
127
+ export type ServiceSpecificName = keyof typeof serviceKeysObject;
128
+
129
+ const serviceKeysArray = Object.keys(serviceKeysObject);
130
+
131
+ // Create the final object dynamically
132
+ function createAllTrueObject<T extends string>(keys: T[]): Record<T, true> {
133
+ return keys.reduce((acc, key) => {
134
+ acc[key] = true;
135
+ return acc;
136
+ }, {} as Record<T, true>);
137
+ }
138
+
139
+ export type ServiceSpecificType = ServiceExt[ServiceSpecificName];
140
+
141
+ export const serviceTypeToField = (serviceType : ServiceTypes) : ServiceSpecificName => {
142
+ const specificServiceMap : Record<ServiceTypes, ServiceSpecificName> = {
143
+ "EventServices": "eventService",
144
+ "EntertainmentServices": "entertainmentService",
145
+ "Vendors": "vendor",
146
+ "Exhibitors": "exhibitor",
147
+ "Sponsors": "sponsor",
148
+ "Venues": "venue",
149
+ "Organizations": "organization"
150
+ };
151
+
152
+ return specificServiceMap[serviceType];
153
+ }
154
+
155
+ //full service data to include, includes specific service data
156
+ export const SERVICE_FULL_DATA_TO_INCLUDE = {
157
+ ...SERVICE_DATA_TO_INCLUDE,
158
+ ...createAllTrueObject(serviceKeysArray)
159
+ } satisfies Prisma.ServiceInclude;
160
+
105
161
  export const VENUE_DATA_TO_INCLUDE = {
106
162
 
107
163
  } satisfies Prisma.VenueInclude;
@@ -523,31 +579,4 @@ export interface IAddress {
523
579
  state: string;
524
580
  zipCode: string;
525
581
  country: string;
526
- }
527
-
528
- export type ServiceSpecificName = keyof Pick<
529
- ServiceExt,
530
- "eventService" |
531
- "entertainmentService" |
532
- "vendor" |
533
- "exhibitor" |
534
- "sponsor" |
535
- "venue" |
536
- "organization"
537
- >;
538
-
539
- export type ServiceSpecificType = ServiceExt[ServiceSpecificName];
540
-
541
- export const serviceTypeToField = (serviceType : ServiceTypes) : ServiceSpecificName => {
542
- const specificServiceMap : Record<ServiceTypes, ServiceSpecificName> = {
543
- "EventServices": "eventService",
544
- "EntertainmentServices": "entertainmentService",
545
- "Vendors": "vendor",
546
- "Exhibitors": "exhibitor",
547
- "Sponsors": "sponsor",
548
- "Venues": "venue",
549
- "Organizations": "organization"
550
- };
551
-
552
- return specificServiceMap[serviceType];
553
582
  }