@bash-app/bash-common 29.50.0 → 29.51.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/package.json +3 -3
- package/prisma/schema.prisma +51 -9
- package/scripts/symlinks.sh +31 -0
- package/src/definitions.ts +168 -103
- package/src/extendedSchemas.ts +233 -104
- package/src/index.ts +3 -0
- package/src/utils/entityUtils.ts +4 -0
- package/src/utils/service/serviceUtils.ts +128 -84
- package/src/utils/service/venueUtils.ts +22 -22
- package/src/utils/userPromoCodeUtils.ts +25 -23
- package/src/utils/userSubscriptionUtils.ts +86 -63
package/src/extendedSchemas.ts
CHANGED
|
@@ -7,12 +7,20 @@ import {
|
|
|
7
7
|
Invitation,
|
|
8
8
|
Ticket,
|
|
9
9
|
User,
|
|
10
|
-
TicketTier,
|
|
11
|
-
|
|
10
|
+
TicketTier,
|
|
11
|
+
Service,
|
|
12
|
+
Review,
|
|
13
|
+
Media,
|
|
14
|
+
BashComment,
|
|
15
|
+
Recurrence,
|
|
16
|
+
Contact,
|
|
17
|
+
BashNotification,
|
|
18
|
+
BashEventPromoCode,
|
|
12
19
|
Reminder,
|
|
13
20
|
Checkout,
|
|
14
21
|
ServiceLink,
|
|
15
|
-
Link,
|
|
22
|
+
Link,
|
|
23
|
+
Venue,
|
|
16
24
|
// Availability,
|
|
17
25
|
TargetAudience,
|
|
18
26
|
Vendor,
|
|
@@ -22,7 +30,9 @@ import {
|
|
|
22
30
|
Sponsor,
|
|
23
31
|
Organization,
|
|
24
32
|
Booking,
|
|
25
|
-
VolunteerService,
|
|
33
|
+
VolunteerService,
|
|
34
|
+
Prisma,
|
|
35
|
+
ServiceRange,
|
|
26
36
|
StripeAccount,
|
|
27
37
|
VisibilityPreference,
|
|
28
38
|
BashEventType,
|
|
@@ -39,25 +49,37 @@ import {
|
|
|
39
49
|
UserSubscription,
|
|
40
50
|
SocialMediaProfile,
|
|
41
51
|
SocialMediaPlatform,
|
|
52
|
+
ServiceSubscriptionCounts,
|
|
53
|
+
UserRating,
|
|
42
54
|
} from "@prisma/client";
|
|
43
55
|
import { SERVICE_LINK_DATA_TO_INCLUDE, UnionFromArray } from "./definitions";
|
|
44
56
|
|
|
45
57
|
//------------------------------------------------------user subscriptions------------------------------------------------------
|
|
46
|
-
export const
|
|
58
|
+
export const PUBLIC_USER_SUBSCRIPTION_DATA_TO_SELECT = {
|
|
47
59
|
type: true,
|
|
48
60
|
status: true,
|
|
49
|
-
serviceSubscriptionTier: true,
|
|
50
61
|
ownerId: true,
|
|
51
|
-
|
|
62
|
+
subscriptionCount: true,
|
|
63
|
+
listedCount: true,
|
|
52
64
|
} satisfies Prisma.UserSubscriptionSelect;
|
|
53
65
|
|
|
54
|
-
export
|
|
55
|
-
|
|
56
|
-
|
|
66
|
+
export const PRIVATE_USER_SUBSCRIPTION_DATA_TO_SELECT = {
|
|
67
|
+
...PUBLIC_USER_SUBSCRIPTION_DATA_TO_SELECT,
|
|
68
|
+
stripeAccountId: true,
|
|
69
|
+
stripeCheckoutSessionId: true,
|
|
70
|
+
} satisfies Prisma.UserSubscriptionSelect;
|
|
57
71
|
|
|
58
72
|
export const USER_SUBSCRIPTION_DATA_TO_INCLUDE = {
|
|
59
|
-
stripeAccount: true
|
|
73
|
+
stripeAccount: true,
|
|
74
|
+
subscriptionCount: true,
|
|
75
|
+
listedCount: true,
|
|
60
76
|
} satisfies Prisma.UserSubscriptionInclude;
|
|
77
|
+
|
|
78
|
+
export type UserSubscriptionExt = {
|
|
79
|
+
stripeAccount?: StripeAccountExt;
|
|
80
|
+
subscriptionCount?: ServiceSubscriptionCounts;
|
|
81
|
+
listedCount?: ServiceSubscriptionCounts;
|
|
82
|
+
} & UserSubscription;
|
|
61
83
|
//-------------------------------------------------------------------------------------------------------------------------------
|
|
62
84
|
|
|
63
85
|
export const FRONT_END_USER_DATA_TO_SELECT = {
|
|
@@ -69,6 +91,17 @@ export const FRONT_END_USER_DATA_TO_SELECT = {
|
|
|
69
91
|
uploadedImage: true,
|
|
70
92
|
isSuperUser: true,
|
|
71
93
|
socialMediaProfiles: true,
|
|
94
|
+
city: true,
|
|
95
|
+
state: true,
|
|
96
|
+
createdOn: true,
|
|
97
|
+
dob: true,
|
|
98
|
+
gender: true,
|
|
99
|
+
sex: true,
|
|
100
|
+
documentIDId: true,
|
|
101
|
+
// documentID: true,
|
|
102
|
+
reviews: true,
|
|
103
|
+
userRating: true,
|
|
104
|
+
contacts: true,
|
|
72
105
|
} satisfies Prisma.UserSelect;
|
|
73
106
|
|
|
74
107
|
export const PRIVATE_USER_ACCOUNT_TO_SELECT = {
|
|
@@ -80,8 +113,8 @@ export const PRIVATE_USER_ACCOUNT_TO_SELECT = {
|
|
|
80
113
|
country: true,
|
|
81
114
|
phone: true,
|
|
82
115
|
userSubscription: {
|
|
83
|
-
select: PRIVATE_USER_SUBSCRIPTION_DATA_TO_SELECT
|
|
84
|
-
}
|
|
116
|
+
select: PRIVATE_USER_SUBSCRIPTION_DATA_TO_SELECT,
|
|
117
|
+
},
|
|
85
118
|
} satisfies Prisma.UserSelect;
|
|
86
119
|
|
|
87
120
|
export interface BashEventExt extends BashEvent {
|
|
@@ -91,48 +124,124 @@ export interface BashEventExt extends BashEvent {
|
|
|
91
124
|
creator?: PublicUser;
|
|
92
125
|
ticketTiers: TicketTierExt[];
|
|
93
126
|
media: Media[];
|
|
94
|
-
eventTasks
|
|
127
|
+
eventTasks?: EventTask[];
|
|
95
128
|
tickets?: Ticket[]; // Only include tickets that the user has purchased and not all tickets (could be thousands + privacy)
|
|
96
129
|
// Do not include in fetch. Could be hundreds of these
|
|
97
|
-
invitations
|
|
130
|
+
invitations?: InvitationExt[];
|
|
98
131
|
coordinates?: Coordinates[];
|
|
99
132
|
}
|
|
100
133
|
|
|
101
134
|
export const TICKET_TIER_DATA_TO_INCLUDE = {
|
|
135
|
+
tickets: {
|
|
136
|
+
include: {
|
|
137
|
+
owner: {
|
|
138
|
+
select: {
|
|
139
|
+
id: true,
|
|
140
|
+
email: true,
|
|
141
|
+
givenName: true,
|
|
142
|
+
familyName: true,
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
forUser: {
|
|
146
|
+
select: {
|
|
147
|
+
id: true,
|
|
148
|
+
email: true,
|
|
149
|
+
givenName: true,
|
|
150
|
+
familyName: true,
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
},
|
|
102
155
|
promoCodes: true,
|
|
103
156
|
} satisfies Prisma.TicketTierInclude;
|
|
104
157
|
|
|
158
|
+
|
|
105
159
|
export const BASH_EVENT_DATA_TO_INCLUDE = {
|
|
106
160
|
creator: {
|
|
107
|
-
select: FRONT_END_USER_DATA_TO_SELECT
|
|
161
|
+
select: FRONT_END_USER_DATA_TO_SELECT,
|
|
108
162
|
},
|
|
109
163
|
targetAudience: true,
|
|
110
164
|
amountOfGuests: true,
|
|
111
165
|
recurrence: true,
|
|
112
166
|
ticketTiers: {
|
|
113
|
-
include:
|
|
167
|
+
include: {
|
|
168
|
+
promoCodes: true,
|
|
169
|
+
bashEvent: true,
|
|
170
|
+
tickets: {
|
|
171
|
+
include: {
|
|
172
|
+
owner: {
|
|
173
|
+
select: {
|
|
174
|
+
id: true,
|
|
175
|
+
email: true,
|
|
176
|
+
givenName: true,
|
|
177
|
+
familyName: true,
|
|
178
|
+
image: true,
|
|
179
|
+
createdOn: true,
|
|
180
|
+
isSuperUser: true,
|
|
181
|
+
uploadedImage: true,
|
|
182
|
+
dob: true,
|
|
183
|
+
gender: true,
|
|
184
|
+
sex: true,
|
|
185
|
+
city: true,
|
|
186
|
+
state: true,
|
|
187
|
+
documentIDId: true,
|
|
188
|
+
reviews: true,
|
|
189
|
+
userRating: true,
|
|
190
|
+
socialMediaProfiles: true,
|
|
191
|
+
contacts: true,
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
forUser: {
|
|
195
|
+
select: {
|
|
196
|
+
id: true,
|
|
197
|
+
email: true,
|
|
198
|
+
givenName: true,
|
|
199
|
+
familyName: true,
|
|
200
|
+
image: true,
|
|
201
|
+
createdOn: true,
|
|
202
|
+
isSuperUser: true,
|
|
203
|
+
uploadedImage: true,
|
|
204
|
+
dob: true,
|
|
205
|
+
gender: true,
|
|
206
|
+
sex: true,
|
|
207
|
+
city: true,
|
|
208
|
+
state: true,
|
|
209
|
+
documentIDId: true,
|
|
210
|
+
reviews: true,
|
|
211
|
+
userRating: true,
|
|
212
|
+
socialMediaProfiles: true,
|
|
213
|
+
contacts: true,
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
},
|
|
114
219
|
},
|
|
115
|
-
eventTasks: true,
|
|
116
220
|
media: true,
|
|
221
|
+
eventTasks: true,
|
|
117
222
|
} satisfies Prisma.BashEventInclude;
|
|
118
223
|
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
119
228
|
export const BASH_EVENT_DATA_TO_CLONE = [
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
229
|
+
"ticketTiers",
|
|
230
|
+
"media",
|
|
231
|
+
"recurrence",
|
|
232
|
+
"invitations",
|
|
124
233
|
] as const;
|
|
125
234
|
|
|
126
235
|
type RemoveCommonProperties<T, U> = keyof (Omit<T, keyof U> & Omit<U, keyof T>);
|
|
127
|
-
type BashEventExtMinusDataToCloneType = Omit<
|
|
236
|
+
type BashEventExtMinusDataToCloneType = Omit<
|
|
237
|
+
BashEventExt,
|
|
238
|
+
UnionFromArray<typeof BASH_EVENT_DATA_TO_CLONE>
|
|
239
|
+
>;
|
|
128
240
|
|
|
129
|
-
export const BASH_EVENT_DATA_TO_REMOVE: RemoveCommonProperties<
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
'targetAudience',
|
|
134
|
-
'amountOfGuests',
|
|
135
|
-
];
|
|
241
|
+
export const BASH_EVENT_DATA_TO_REMOVE: RemoveCommonProperties<
|
|
242
|
+
BashEvent,
|
|
243
|
+
BashEventExtMinusDataToCloneType
|
|
244
|
+
>[] = ["creator", "eventTasks", "tickets", "targetAudience", "amountOfGuests"];
|
|
136
245
|
|
|
137
246
|
//---------------Services------------------
|
|
138
247
|
export interface ServiceExt extends Service {
|
|
@@ -193,7 +302,6 @@ export interface ServiceRatesAssociationExt extends ServiceRatesAssociation {
|
|
|
193
302
|
media?: Media[];
|
|
194
303
|
}
|
|
195
304
|
|
|
196
|
-
|
|
197
305
|
export interface EventServiceExt extends EventService {
|
|
198
306
|
service: ServiceExt;
|
|
199
307
|
crowdSize?: AmountOfGuests;
|
|
@@ -246,7 +354,6 @@ export interface ServiceLinkExt extends ServiceLink {
|
|
|
246
354
|
link: Link;
|
|
247
355
|
}
|
|
248
356
|
|
|
249
|
-
|
|
250
357
|
// Create the final object dynamically
|
|
251
358
|
function createAllTrueObject<T extends string>(keys: T[]): Record<T, true> {
|
|
252
359
|
return keys.reduce((acc, key) => {
|
|
@@ -266,51 +373,52 @@ const serviceKeysObject = {
|
|
|
266
373
|
organization: true,
|
|
267
374
|
} as const;
|
|
268
375
|
|
|
269
|
-
|
|
270
376
|
export type ServiceSpecificName = keyof typeof serviceKeysObject;
|
|
271
377
|
|
|
272
378
|
const serviceKeysArray = Object.keys(serviceKeysObject);
|
|
273
379
|
|
|
274
380
|
export type ServiceSpecificType = ServiceExt[ServiceSpecificName];
|
|
275
381
|
|
|
276
|
-
export const specificServiceMap
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
382
|
+
export const specificServiceMap: Record<ServiceTypes, ServiceSpecificName> = {
|
|
383
|
+
EventServices: "eventService",
|
|
384
|
+
EntertainmentServices: "entertainmentService",
|
|
385
|
+
Vendors: "vendor",
|
|
386
|
+
Exhibitors: "exhibitor",
|
|
387
|
+
Sponsors: "sponsor",
|
|
388
|
+
Venues: "venue",
|
|
389
|
+
Organizations: "organization",
|
|
284
390
|
} as const;
|
|
285
391
|
|
|
286
|
-
export const serviceTypeToField = (
|
|
392
|
+
export const serviceTypeToField = (
|
|
393
|
+
serviceType: ServiceTypes
|
|
394
|
+
): ServiceSpecificName => {
|
|
287
395
|
return specificServiceMap[serviceType];
|
|
288
|
-
}
|
|
396
|
+
};
|
|
289
397
|
export const SERVICE_PACKAGE_DATA_TO_INCLUDE = {
|
|
290
|
-
serviceAddons: true
|
|
398
|
+
serviceAddons: true,
|
|
291
399
|
} satisfies Prisma.ServicePackageInclude;
|
|
292
400
|
|
|
293
401
|
export const SERVICE_DAILYRATES_DATA_TO_INCLUDE = {
|
|
294
|
-
serviceRate: true
|
|
402
|
+
serviceRate: true,
|
|
295
403
|
} satisfies Prisma.ServiceDailyRatesInclude;
|
|
296
404
|
|
|
297
405
|
export const SERVICE_SPECIALRATES_DATA_TO_INCLUDE = {
|
|
298
|
-
serviceRate: true
|
|
406
|
+
serviceRate: true,
|
|
299
407
|
} satisfies Prisma.ServiceSpecialRatesInclude;
|
|
300
408
|
|
|
301
409
|
export const SERVICE_RATES_ASSOCIATION_DATA_TO_INCLUDE = {
|
|
302
410
|
serviceGeneralRates: true,
|
|
303
411
|
serviceDailyRates: {
|
|
304
|
-
include: SERVICE_DAILYRATES_DATA_TO_INCLUDE
|
|
412
|
+
include: SERVICE_DAILYRATES_DATA_TO_INCLUDE,
|
|
305
413
|
},
|
|
306
414
|
serviceSpecialRates: {
|
|
307
|
-
include: SERVICE_SPECIALRATES_DATA_TO_INCLUDE
|
|
415
|
+
include: SERVICE_SPECIALRATES_DATA_TO_INCLUDE,
|
|
308
416
|
},
|
|
309
417
|
addons: true,
|
|
310
|
-
packages:
|
|
311
|
-
include: SERVICE_PACKAGE_DATA_TO_INCLUDE
|
|
418
|
+
packages: {
|
|
419
|
+
include: SERVICE_PACKAGE_DATA_TO_INCLUDE,
|
|
312
420
|
},
|
|
313
|
-
media: true
|
|
421
|
+
media: true,
|
|
314
422
|
} satisfies Prisma.ServiceRatesAssociationInclude;
|
|
315
423
|
|
|
316
424
|
//------------Stripe Accounts--------------
|
|
@@ -318,17 +426,17 @@ export const PUBLIC_STRIPE_ACCOUNT_DATA_TO_SELECT = {
|
|
|
318
426
|
logo: true,
|
|
319
427
|
logoId: true,
|
|
320
428
|
createdAt: true,
|
|
321
|
-
updatedAt: true
|
|
429
|
+
updatedAt: true,
|
|
322
430
|
} satisfies Prisma.StripeAccountSelect;
|
|
323
431
|
|
|
324
432
|
export const STRIPE_ACCOUNT_DATA_TO_INCLUDE = {
|
|
325
433
|
logo: true,
|
|
326
434
|
owner: {
|
|
327
|
-
select: FRONT_END_USER_DATA_TO_SELECT
|
|
435
|
+
select: FRONT_END_USER_DATA_TO_SELECT,
|
|
328
436
|
},
|
|
329
437
|
userSubscription: {
|
|
330
|
-
select: PRIVATE_USER_SUBSCRIPTION_DATA_TO_SELECT
|
|
331
|
-
}
|
|
438
|
+
select: PRIVATE_USER_SUBSCRIPTION_DATA_TO_SELECT,
|
|
439
|
+
},
|
|
332
440
|
} satisfies Prisma.StripeAccountInclude;
|
|
333
441
|
|
|
334
442
|
export interface StripeAccountExt extends StripeAccount {
|
|
@@ -337,10 +445,10 @@ export interface StripeAccountExt extends StripeAccount {
|
|
|
337
445
|
|
|
338
446
|
export const SERVICE_DATA_TO_INCLUDE = {
|
|
339
447
|
creator: {
|
|
340
|
-
select: FRONT_END_USER_DATA_TO_SELECT
|
|
448
|
+
select: FRONT_END_USER_DATA_TO_SELECT,
|
|
341
449
|
},
|
|
342
450
|
owner: {
|
|
343
|
-
select: FRONT_END_USER_DATA_TO_SELECT
|
|
451
|
+
select: FRONT_END_USER_DATA_TO_SELECT,
|
|
344
452
|
},
|
|
345
453
|
targetAudience: true,
|
|
346
454
|
// amountOfGuests: true,
|
|
@@ -352,43 +460,49 @@ export const SERVICE_DATA_TO_INCLUDE = {
|
|
|
352
460
|
media: true,
|
|
353
461
|
stripeAccount: {
|
|
354
462
|
// ...STRIPE_ACCOUNT_DATA_TO_INCLUDE,
|
|
355
|
-
select: PUBLIC_STRIPE_ACCOUNT_DATA_TO_SELECT
|
|
463
|
+
select: PUBLIC_STRIPE_ACCOUNT_DATA_TO_SELECT,
|
|
356
464
|
},
|
|
357
465
|
// availableDateTimes: true,
|
|
358
466
|
serviceLinks: {
|
|
359
|
-
include: SERVICE_LINK_DATA_TO_INCLUDE
|
|
467
|
+
include: SERVICE_LINK_DATA_TO_INCLUDE,
|
|
360
468
|
},
|
|
361
469
|
serviceRatesAssociation: {
|
|
362
|
-
include: SERVICE_RATES_ASSOCIATION_DATA_TO_INCLUDE
|
|
363
|
-
}
|
|
470
|
+
include: SERVICE_RATES_ASSOCIATION_DATA_TO_INCLUDE,
|
|
471
|
+
},
|
|
364
472
|
} satisfies Prisma.ServiceInclude;
|
|
365
473
|
|
|
366
474
|
//full service data to include, includes specific service data
|
|
367
475
|
export const SERVICE_FULL_DATA_TO_INCLUDE = {
|
|
368
476
|
...SERVICE_DATA_TO_INCLUDE,
|
|
369
|
-
...createAllTrueObject(serviceKeysArray)
|
|
477
|
+
...createAllTrueObject(serviceKeysArray),
|
|
370
478
|
} satisfies Prisma.ServiceInclude;
|
|
371
479
|
|
|
372
480
|
export const SERVICE_FULL_DATA_TO_CLONE = [
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
481
|
+
"media",
|
|
482
|
+
"targetAudience",
|
|
483
|
+
"serviceLinks",
|
|
376
484
|
// ...Object.values(specificServiceMap)
|
|
377
485
|
] as const;
|
|
378
486
|
|
|
379
|
-
type ServiceExtMinusDataToCloneType = Omit<
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
] as const;
|
|
389
|
-
|
|
390
|
-
type VenueExtMinusDataToCloneType = Omit<
|
|
391
|
-
|
|
487
|
+
type ServiceExtMinusDataToCloneType = Omit<
|
|
488
|
+
ServiceExt,
|
|
489
|
+
UnionFromArray<typeof SERVICE_FULL_DATA_TO_CLONE>
|
|
490
|
+
>;
|
|
491
|
+
export const SERVICE_FULL_DATA_TO_REMOVE: RemoveCommonProperties<
|
|
492
|
+
Service,
|
|
493
|
+
ServiceExtMinusDataToCloneType
|
|
494
|
+
>[] = ["creator", "owner", "bookings"] as const;
|
|
495
|
+
|
|
496
|
+
export const VENUE_DATA_TO_CLONE = [] as const;
|
|
497
|
+
|
|
498
|
+
type VenueExtMinusDataToCloneType = Omit<
|
|
499
|
+
Venue,
|
|
500
|
+
UnionFromArray<typeof VENUE_DATA_TO_CLONE>
|
|
501
|
+
>;
|
|
502
|
+
export const VENUE_DATA_TO_REMOVE: RemoveCommonProperties<
|
|
503
|
+
Venue,
|
|
504
|
+
VenueExtMinusDataToCloneType
|
|
505
|
+
>[] = [
|
|
392
506
|
// 'bashEvents',
|
|
393
507
|
] as const;
|
|
394
508
|
//-----------------------------------------
|
|
@@ -419,7 +533,6 @@ export interface TargetAudienceExt extends TargetAudience {
|
|
|
419
533
|
customAttributes?: { [key: string]: any };
|
|
420
534
|
}
|
|
421
535
|
|
|
422
|
-
|
|
423
536
|
export const BASH_NOTIFICATION_DATA_TO_INCLUDE = {
|
|
424
537
|
bashEvent: {
|
|
425
538
|
select: {
|
|
@@ -440,14 +553,13 @@ export interface EventTaskExt extends EventTask {
|
|
|
440
553
|
|
|
441
554
|
export const EVENT_TASK_DATA_TO_INCLUDE = {
|
|
442
555
|
creator: {
|
|
443
|
-
select: FRONT_END_USER_DATA_TO_SELECT
|
|
556
|
+
select: FRONT_END_USER_DATA_TO_SELECT,
|
|
444
557
|
},
|
|
445
558
|
assignedTo: {
|
|
446
|
-
select: FRONT_END_USER_DATA_TO_SELECT
|
|
447
|
-
}
|
|
559
|
+
select: FRONT_END_USER_DATA_TO_SELECT,
|
|
560
|
+
},
|
|
448
561
|
} satisfies Prisma.EventTaskInclude;
|
|
449
562
|
|
|
450
|
-
|
|
451
563
|
export interface InvitationExt extends Invitation {
|
|
452
564
|
creator: PublicUser;
|
|
453
565
|
sentTo: PublicUser;
|
|
@@ -457,10 +569,10 @@ export interface InvitationExt extends Invitation {
|
|
|
457
569
|
|
|
458
570
|
export const INVITATION_DATA_TO_INCLUDE = {
|
|
459
571
|
creator: {
|
|
460
|
-
select: FRONT_END_USER_DATA_TO_SELECT
|
|
572
|
+
select: FRONT_END_USER_DATA_TO_SELECT,
|
|
461
573
|
},
|
|
462
574
|
sentTo: {
|
|
463
|
-
select: FRONT_END_USER_DATA_TO_SELECT
|
|
575
|
+
select: FRONT_END_USER_DATA_TO_SELECT,
|
|
464
576
|
},
|
|
465
577
|
tickets: true,
|
|
466
578
|
} satisfies Prisma.InvitationInclude;
|
|
@@ -482,16 +594,16 @@ export interface AssociatedServiceExt extends AssociatedService {
|
|
|
482
594
|
|
|
483
595
|
export const ASSOCIATED_BASH_DATA_TO_INCLUDE = {
|
|
484
596
|
bashEvent: {
|
|
485
|
-
include: BASH_EVENT_DATA_TO_INCLUDE
|
|
597
|
+
include: BASH_EVENT_DATA_TO_INCLUDE,
|
|
486
598
|
},
|
|
487
599
|
invitation: {
|
|
488
|
-
include: INVITATION_DATA_TO_INCLUDE
|
|
489
|
-
}
|
|
600
|
+
include: INVITATION_DATA_TO_INCLUDE,
|
|
601
|
+
},
|
|
490
602
|
} satisfies Prisma.AssociatedBashInclude;
|
|
491
603
|
|
|
492
604
|
export const ASSOCIATED_SERVICE_DATA_TO_INCLUDE = {
|
|
493
605
|
service: {
|
|
494
|
-
include: SERVICE_DATA_TO_INCLUDE
|
|
606
|
+
include: SERVICE_DATA_TO_INCLUDE,
|
|
495
607
|
},
|
|
496
608
|
// invitation: {
|
|
497
609
|
// include: INVITATION_DATA_TO_INCLUDE
|
|
@@ -512,27 +624,27 @@ export interface TicketExt extends Ticket {
|
|
|
512
624
|
|
|
513
625
|
export interface CheckoutExt extends Checkout {
|
|
514
626
|
owner: PublicUser;
|
|
515
|
-
tickets: Ticket[]
|
|
627
|
+
tickets: Ticket[];
|
|
516
628
|
}
|
|
517
629
|
|
|
518
630
|
export const CHECKOUT_DATA_TO_INCLUDE = {
|
|
519
631
|
owner: {
|
|
520
|
-
select: FRONT_END_USER_DATA_TO_SELECT
|
|
632
|
+
select: FRONT_END_USER_DATA_TO_SELECT,
|
|
521
633
|
},
|
|
522
634
|
tickets: {
|
|
523
635
|
select: {
|
|
524
|
-
ownerId: true
|
|
525
|
-
}
|
|
526
|
-
}
|
|
636
|
+
ownerId: true,
|
|
637
|
+
},
|
|
638
|
+
},
|
|
527
639
|
} satisfies Prisma.CheckoutInclude;
|
|
528
640
|
|
|
529
641
|
export interface ReviewExt extends Review {
|
|
530
|
-
comments
|
|
642
|
+
comments?: BashComment[];
|
|
531
643
|
}
|
|
532
644
|
|
|
533
645
|
export const CONTACT_DATA_TO_INCLUDE = {
|
|
534
646
|
contactOwner: {
|
|
535
|
-
select: FRONT_END_USER_DATA_TO_SELECT
|
|
647
|
+
select: FRONT_END_USER_DATA_TO_SELECT,
|
|
536
648
|
},
|
|
537
649
|
} satisfies Prisma.ContactInclude;
|
|
538
650
|
|
|
@@ -552,18 +664,35 @@ export interface UserExt extends User {
|
|
|
552
664
|
createdServices?: ServiceExt[];
|
|
553
665
|
password?: string;
|
|
554
666
|
otp?: string;
|
|
555
|
-
}
|
|
667
|
+
userRating?: UserRating[];}
|
|
556
668
|
|
|
557
669
|
export const USER_DATA_SELECT_REVIEWS_COMMENTS = {
|
|
558
670
|
reviews: {
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
671
|
+
select: {
|
|
672
|
+
id: true,
|
|
673
|
+
rating: true,
|
|
674
|
+
creatorId: true, // Fetches the creatorId from Review
|
|
675
|
+
bashEventId: true, // Fetches the bashEventId
|
|
676
|
+
createdAt: true,
|
|
677
|
+
updatedAt: true,
|
|
678
|
+
comments: { // This matches the relation field in the schema
|
|
679
|
+
select: {
|
|
680
|
+
id: true,
|
|
681
|
+
content: true,
|
|
682
|
+
},
|
|
683
|
+
},
|
|
684
|
+
},
|
|
685
|
+
},
|
|
563
686
|
} satisfies Prisma.UserSelect;
|
|
564
687
|
|
|
565
688
|
|
|
566
|
-
export type PublicUser = Pick<
|
|
567
|
-
|
|
689
|
+
export type PublicUser = Pick<
|
|
690
|
+
UserExt,
|
|
691
|
+
keyof typeof FRONT_END_USER_DATA_TO_SELECT
|
|
692
|
+
> &
|
|
693
|
+
Partial<Pick<UserExt, keyof typeof USER_DATA_SELECT_REVIEWS_COMMENTS>>;
|
|
568
694
|
|
|
569
|
-
export type PublicStripeAccount = Pick<
|
|
695
|
+
export type PublicStripeAccount = Pick<
|
|
696
|
+
StripeAccountExt,
|
|
697
|
+
keyof typeof PUBLIC_STRIPE_ACCOUNT_DATA_TO_SELECT
|
|
698
|
+
>;
|
package/src/index.ts
CHANGED
|
@@ -11,6 +11,9 @@ export * from "./utils/sortUtils";
|
|
|
11
11
|
export * from "./utils/apiUtils";
|
|
12
12
|
export * from "./utils/urlUtils";
|
|
13
13
|
export * from "./utils/promoCodesUtils";
|
|
14
|
+
export * from "./utils/userPromoCodeUtils";
|
|
15
|
+
export * from "./utils/userSubscriptionUtils";
|
|
14
16
|
export * from "./utils/service/serviceUtils";
|
|
15
17
|
export * from "./utils/service/venueUtils";
|
|
16
18
|
export * from "./utils/stripeAccountUtils";
|
|
19
|
+
export * from "./utils/entityUtils";
|