@bash-app/bash-common 30.75.2 → 30.78.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/definitions.d.ts +116 -0
- package/dist/definitions.d.ts.map +1 -1
- package/dist/definitions.js +143 -1
- package/dist/definitions.js.map +1 -1
- package/dist/extendedSchemas.d.ts +12 -0
- package/dist/extendedSchemas.d.ts.map +1 -1
- package/dist/extendedSchemas.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/membershipDefinitions.d.ts +1 -0
- package/dist/membershipDefinitions.d.ts.map +1 -1
- package/dist/membershipDefinitions.js.map +1 -1
- package/dist/utils/paymentUtils.d.ts +41 -1
- package/dist/utils/paymentUtils.d.ts.map +1 -1
- package/dist/utils/paymentUtils.js +146 -1
- package/dist/utils/paymentUtils.js.map +1 -1
- package/dist/utils/recurrenceUtils.d.ts.map +1 -1
- package/dist/utils/recurrenceUtils.js +136 -2
- package/dist/utils/recurrenceUtils.js.map +1 -1
- package/dist/utils/service/frontendServiceBookingUtils.d.ts.map +1 -1
- package/dist/utils/service/frontendServiceBookingUtils.js +5 -1
- package/dist/utils/service/frontendServiceBookingUtils.js.map +1 -1
- package/dist/utils/userSubscriptionUtils.d.ts +4 -12
- package/dist/utils/userSubscriptionUtils.d.ts.map +1 -1
- package/dist/utils/userSubscriptionUtils.js +13 -20
- package/dist/utils/userSubscriptionUtils.js.map +1 -1
- package/package.json +1 -1
- package/prisma/schema.prisma +193 -107
- package/src/definitions.ts +180 -1
- package/src/extendedSchemas.ts +21 -2
- package/src/index.ts +1 -1
- package/src/membershipDefinitions.ts +1 -0
- package/src/utils/contentFilterUtils.ts +2 -0
- package/src/utils/paymentUtils.ts +221 -1
- package/src/utils/recurrenceUtils.ts +180 -4
- package/src/utils/service/frontendServiceBookingUtils.ts +5 -1
- package/src/utils/userSubscriptionUtils.ts +20 -38
- package/src/utils/service/venueUtils.ts +0 -30
|
@@ -1,15 +1,25 @@
|
|
|
1
|
+
// Re-export from definitions.ts for backwards compatibility
|
|
2
|
+
export { SERVICE_SUBSCRIPTION_TIERS } from "../definitions";
|
|
1
3
|
export const ServiceSubscriptionTier = {
|
|
4
|
+
Free: "Free",
|
|
2
5
|
Ally: "Ally",
|
|
3
6
|
Partner: "Partner",
|
|
4
|
-
|
|
7
|
+
Patron: "Patron",
|
|
5
8
|
};
|
|
6
9
|
export const SERVICE_TIER_TO_SERVICES_LIST = {
|
|
10
|
+
Free: ["EventServices", "EntertainmentServices"],
|
|
7
11
|
Ally: ["EventServices", "EntertainmentServices"],
|
|
8
12
|
Partner: ["Vendors", "Exhibitors", "Sponsors"],
|
|
9
13
|
Patron: ["Venues", "Organizations"],
|
|
10
14
|
};
|
|
11
15
|
export const SERVICE_TIER_FROM_SERVICE_TYPE = Object.entries(SERVICE_TIER_TO_SERVICES_LIST).reduce((sofar, [type, serviceTypes]) => {
|
|
12
|
-
serviceTypes.forEach((serviceType) =>
|
|
16
|
+
serviceTypes.forEach((serviceType) => {
|
|
17
|
+
// Default to Free tier for EventServices and EntertainmentServices
|
|
18
|
+
// Higher tiers can be chosen by the user
|
|
19
|
+
if (!sofar[serviceType] || type === "Free") {
|
|
20
|
+
sofar[serviceType] = type;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
13
23
|
return sofar;
|
|
14
24
|
}, {});
|
|
15
25
|
export const USER_SUBSCRIPTION_TYPES = {
|
|
@@ -34,23 +44,6 @@ export const USER_SUBSCRIPTION_TYPES = {
|
|
|
34
44
|
// price: 500,
|
|
35
45
|
// }
|
|
36
46
|
};
|
|
37
|
-
|
|
38
|
-
Ally: {
|
|
39
|
-
name: "Ally",
|
|
40
|
-
description: "Ally",
|
|
41
|
-
price: 14,
|
|
42
|
-
},
|
|
43
|
-
Partner: {
|
|
44
|
-
name: "Partner",
|
|
45
|
-
description: "Partner",
|
|
46
|
-
price: 49.0,
|
|
47
|
-
},
|
|
48
|
-
Patron: {
|
|
49
|
-
name: "Patron",
|
|
50
|
-
description: "Patron",
|
|
51
|
-
price: 99.0,
|
|
52
|
-
},
|
|
53
|
-
};
|
|
47
|
+
// Set the type field on each tier info object
|
|
54
48
|
Object.entries(USER_SUBSCRIPTION_TYPES).forEach(([type, info]) => (info.type = type));
|
|
55
|
-
Object.entries(SERVICE_SUBSCRIPTION_TIERS).forEach(([type, info]) => (info.type = type));
|
|
56
49
|
//# sourceMappingURL=userSubscriptionUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userSubscriptionUtils.js","sourceRoot":"","sources":["../../src/utils/userSubscriptionUtils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,
|
|
1
|
+
{"version":3,"file":"userSubscriptionUtils.js","sourceRoot":"","sources":["../../src/utils/userSubscriptionUtils.ts"],"names":[],"mappings":"AAEA,4DAA4D;AAC5D,OAAO,EACL,0BAA0B,EAG3B,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACR,CAAC;AAwBX,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,IAAI,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAChD,IAAI,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAChD,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC;IAC9C,MAAM,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC;CACS,CAAC;AAE/C,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC,OAAO,CAC1D,6BAA6B,CAC9B,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE;IACvC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QACnC,mEAAmE;QACnE,yCAAyC;QACzC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3C,KAAK,CAAC,WAAW,CAAC,GAAG,IAA+B,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC,EAAE,EAAiD,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,YAAY;IACZ,oBAAoB;IACpB,2BAA2B;IAC3B,gBAAgB;IAChB,KAAK;IACL,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,OAAO;QACpB,KAAK,EAAE,CAAC;KACT;IACD,eAAe;IACf,uBAAuB;IACvB,8BAA8B;IAC9B,kBAAkB;IAClB,KAAK;IACL,WAAW;IACX,mBAAmB;IACnB,0BAA0B;IAC1B,kBAAkB;IAClB,IAAI;CAC6B,CAAC;AAEpC,8CAA8C;AAC9C,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAC7C,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAsB,CAAC,CACvD,CAAC"}
|
package/package.json
CHANGED
package/prisma/schema.prisma
CHANGED
|
@@ -244,8 +244,8 @@ model BashEvent {
|
|
|
244
244
|
description String?
|
|
245
245
|
eventType String @default("Other")
|
|
246
246
|
timezone String?
|
|
247
|
-
startDateTime DateTime?
|
|
248
|
-
endDateTime DateTime?
|
|
247
|
+
startDateTime DateTime?
|
|
248
|
+
endDateTime DateTime?
|
|
249
249
|
waiverUrl String?
|
|
250
250
|
waiverRequired Boolean @default(false)
|
|
251
251
|
waiverDisplayType String? @default("inline")
|
|
@@ -328,6 +328,7 @@ model BashEvent {
|
|
|
328
328
|
vendorBookingRequests VendorBookingRequest[] @relation("VendorBookingEvent")
|
|
329
329
|
media Media[] @relation("BashEventToMedia")
|
|
330
330
|
associatedServicesReferencingMe Service[] @relation("BashEventToService")
|
|
331
|
+
userConnections UserConnection[]
|
|
331
332
|
}
|
|
332
333
|
|
|
333
334
|
model Coordinates {
|
|
@@ -390,19 +391,24 @@ model UserReferralCode {
|
|
|
390
391
|
}
|
|
391
392
|
|
|
392
393
|
model UserReferralToken {
|
|
393
|
-
id
|
|
394
|
-
userId
|
|
395
|
-
token
|
|
396
|
-
planName
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
394
|
+
id String @id @default(cuid())
|
|
395
|
+
userId String
|
|
396
|
+
token String @unique
|
|
397
|
+
planName String
|
|
398
|
+
redeemedByUserId String?
|
|
399
|
+
type String? @default("PAID_MEMBERSHIP") // "FREE_SIGNUP", "PAID_MEMBERSHIP", or planName
|
|
400
|
+
metadata Json? // JSONB in Postgres: signup method, IP, etc.
|
|
401
|
+
expiresAt DateTime
|
|
402
|
+
isUsed Boolean @default(false)
|
|
403
|
+
createdAt DateTime @default(now())
|
|
404
|
+
updatedAt DateTime @updatedAt
|
|
405
|
+
user User @relation("UserReferralTokens", fields: [userId], references: [id], onDelete: Cascade)
|
|
402
406
|
|
|
403
407
|
@@index([token])
|
|
404
408
|
@@index([userId])
|
|
405
409
|
@@index([expiresAt])
|
|
410
|
+
@@index([type])
|
|
411
|
+
@@index([redeemedByUserId])
|
|
406
412
|
}
|
|
407
413
|
|
|
408
414
|
model TicketTier {
|
|
@@ -772,6 +778,10 @@ model User {
|
|
|
772
778
|
zelleEmail String?
|
|
773
779
|
zellePhone String?
|
|
774
780
|
zelleQRCodeUrl String?
|
|
781
|
+
isAmbashador Boolean @default(false)
|
|
782
|
+
ambashadorAwardedAt DateTime?
|
|
783
|
+
isBashInsider Boolean @default(false)
|
|
784
|
+
insiderAwardedAt DateTime?
|
|
775
785
|
associatedBashes AssociatedBash[]
|
|
776
786
|
associatedServices AssociatedService[]
|
|
777
787
|
comment BashComment[]
|
|
@@ -814,6 +824,7 @@ model User {
|
|
|
814
824
|
remindersCreatedByMe Reminder[] @relation("RemindersCreatedByMe")
|
|
815
825
|
remindersAssignedToMe Reminder[] @relation("RemindersAssignedToMe")
|
|
816
826
|
reviews Review[]
|
|
827
|
+
firstFreeListingId String?
|
|
817
828
|
createdServices Service[] @relation("CreatedService")
|
|
818
829
|
ownedServices Service[] @relation("OwnedService")
|
|
819
830
|
serviceBlocksReceived ServiceBlock[] @relation("ServiceBlocksReceived")
|
|
@@ -839,6 +850,8 @@ model User {
|
|
|
839
850
|
favorites UserFavorite[]
|
|
840
851
|
following UserFollowing[] @relation("Follower")
|
|
841
852
|
followers UserFollowing[] @relation("Following")
|
|
853
|
+
connectionRequestsSent UserConnection[] @relation("ConnectionRequestsSent")
|
|
854
|
+
connectionRequestsReceived UserConnection[] @relation("ConnectionRequestsReceived")
|
|
842
855
|
links UserLink[]
|
|
843
856
|
preferences UserPreferences?
|
|
844
857
|
userPromoCodeRedemption UserPromoCodeRedemption[]
|
|
@@ -970,6 +983,25 @@ model UserFollowing {
|
|
|
970
983
|
@@unique([userId, followingId])
|
|
971
984
|
}
|
|
972
985
|
|
|
986
|
+
model UserConnection {
|
|
987
|
+
id String @id @default(cuid())
|
|
988
|
+
requesterId String // User who sent the request
|
|
989
|
+
addresseeId String // User who received the request
|
|
990
|
+
status ConnectionStatus @default(Pending)
|
|
991
|
+
sharedBashEventId String? // The bash that enabled this connection
|
|
992
|
+
requestedAt DateTime @default(now())
|
|
993
|
+
respondedAt DateTime?
|
|
994
|
+
message String? // Optional message with request
|
|
995
|
+
requester User @relation("ConnectionRequestsSent", fields: [requesterId], references: [id], onDelete: Cascade)
|
|
996
|
+
addressee User @relation("ConnectionRequestsReceived", fields: [addresseeId], references: [id], onDelete: Cascade)
|
|
997
|
+
sharedBash BashEvent? @relation(fields: [sharedBashEventId], references: [id], onDelete: SetNull)
|
|
998
|
+
|
|
999
|
+
@@unique([requesterId, addresseeId])
|
|
1000
|
+
@@index([requesterId])
|
|
1001
|
+
@@index([addresseeId])
|
|
1002
|
+
@@index([status])
|
|
1003
|
+
}
|
|
1004
|
+
|
|
973
1005
|
model BiometricCredential {
|
|
974
1006
|
id String @id @default(cuid())
|
|
975
1007
|
userId String
|
|
@@ -1121,82 +1153,88 @@ model UserSubscription {
|
|
|
1121
1153
|
}
|
|
1122
1154
|
|
|
1123
1155
|
model Service {
|
|
1124
|
-
id
|
|
1125
|
-
serviceType
|
|
1126
|
-
serviceStatus
|
|
1127
|
-
serviceCondition
|
|
1128
|
-
subscriptionStatus
|
|
1129
|
-
isApproved
|
|
1130
|
-
ownerId
|
|
1131
|
-
creatorId
|
|
1132
|
-
createdAt
|
|
1133
|
-
updatedAt
|
|
1134
|
-
serviceName
|
|
1135
|
-
tagline
|
|
1136
|
-
place
|
|
1137
|
-
googlePlaceId
|
|
1138
|
-
street
|
|
1139
|
-
city
|
|
1140
|
-
state
|
|
1141
|
-
zipCode
|
|
1142
|
-
country
|
|
1143
|
-
description
|
|
1144
|
-
pocName
|
|
1145
|
-
pocPhoneNumber
|
|
1146
|
-
pocBusinessEmail
|
|
1147
|
-
additionalInfo
|
|
1148
|
-
coverPhoto
|
|
1149
|
-
mission
|
|
1150
|
-
communityInvolvement
|
|
1151
|
-
emergencyContact
|
|
1152
|
-
contactDetails
|
|
1153
|
-
cancellationPolicy
|
|
1154
|
-
availableHours
|
|
1155
|
-
allowsInstantBooking
|
|
1156
|
-
instantBookingLeadTimeHours
|
|
1157
|
-
displayGoogleReviewsOnDetailPage
|
|
1158
|
-
displayBashReviewsOnDetailPage
|
|
1159
|
-
serviceRating
|
|
1160
|
-
totalRatings
|
|
1161
|
-
stripeAccountId
|
|
1162
|
-
targetAudienceId
|
|
1163
|
-
visibility
|
|
1164
|
-
bashesNotInterestedIn
|
|
1165
|
-
customExcludedEventTypes
|
|
1166
|
-
volunteerServiceId
|
|
1167
|
-
eventServiceId
|
|
1168
|
-
entertainmentServiceId
|
|
1169
|
-
vendorId
|
|
1170
|
-
exhibitorId
|
|
1171
|
-
sponsorId
|
|
1172
|
-
venueId
|
|
1173
|
-
organizationId
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1156
|
+
id String @id @default(cuid())
|
|
1157
|
+
serviceType ServiceTypes?
|
|
1158
|
+
serviceStatus ServiceStatus @default(Draft)
|
|
1159
|
+
serviceCondition ServiceCondition @default(Pending)
|
|
1160
|
+
subscriptionStatus ServiceSubscriptionStatus @default(None)
|
|
1161
|
+
isApproved Boolean @default(false)
|
|
1162
|
+
ownerId String?
|
|
1163
|
+
creatorId String?
|
|
1164
|
+
createdAt DateTime @default(now())
|
|
1165
|
+
updatedAt DateTime? @updatedAt
|
|
1166
|
+
serviceName String?
|
|
1167
|
+
tagline String?
|
|
1168
|
+
place String?
|
|
1169
|
+
googlePlaceId String?
|
|
1170
|
+
street String?
|
|
1171
|
+
city String?
|
|
1172
|
+
state String?
|
|
1173
|
+
zipCode String?
|
|
1174
|
+
country String?
|
|
1175
|
+
description String?
|
|
1176
|
+
pocName String?
|
|
1177
|
+
pocPhoneNumber String?
|
|
1178
|
+
pocBusinessEmail String?
|
|
1179
|
+
additionalInfo String?
|
|
1180
|
+
coverPhoto String?
|
|
1181
|
+
mission String?
|
|
1182
|
+
communityInvolvement String?
|
|
1183
|
+
emergencyContact String?
|
|
1184
|
+
contactDetails String?
|
|
1185
|
+
cancellationPolicy ServiceCancellationPolicy? @default(None)
|
|
1186
|
+
availableHours String?
|
|
1187
|
+
allowsInstantBooking Boolean @default(false)
|
|
1188
|
+
instantBookingLeadTimeHours Int @default(0)
|
|
1189
|
+
displayGoogleReviewsOnDetailPage Boolean @default(true)
|
|
1190
|
+
displayBashReviewsOnDetailPage Boolean @default(true)
|
|
1191
|
+
serviceRating Float? @default(0)
|
|
1192
|
+
totalRatings Int? @default(0)
|
|
1193
|
+
stripeAccountId String?
|
|
1194
|
+
targetAudienceId String? @unique
|
|
1195
|
+
visibility VisibilityPreference @default(Public)
|
|
1196
|
+
bashesNotInterestedIn BashEventType[]
|
|
1197
|
+
customExcludedEventTypes String[] @default([])
|
|
1198
|
+
volunteerServiceId String? @unique
|
|
1199
|
+
eventServiceId String? @unique
|
|
1200
|
+
entertainmentServiceId String? @unique
|
|
1201
|
+
vendorId String? @unique
|
|
1202
|
+
exhibitorId String? @unique
|
|
1203
|
+
sponsorId String? @unique
|
|
1204
|
+
venueId String? @unique
|
|
1205
|
+
organizationId String? @unique
|
|
1206
|
+
isFreeFirstListing Boolean @default(false)
|
|
1207
|
+
monthlyPrice Decimal @default(0)
|
|
1208
|
+
serviceListingStripeSubscriptionId String?
|
|
1209
|
+
associatedServicesReferencingMe AssociatedService[]
|
|
1210
|
+
exhibitorBookingRequests ExhibitorBookingRequest[] @relation("ExhibitorBookingService")
|
|
1211
|
+
notification Notification[]
|
|
1212
|
+
creator User? @relation("CreatedService", fields: [creatorId], references: [id])
|
|
1213
|
+
entertainmentService EntertainmentService? @relation(fields: [entertainmentServiceId], references: [id], onDelete: Cascade)
|
|
1214
|
+
eventService EventService? @relation(fields: [eventServiceId], references: [id], onDelete: Cascade)
|
|
1215
|
+
exhibitor Exhibitor? @relation(fields: [exhibitorId], references: [id], onDelete: Cascade)
|
|
1216
|
+
organization Organization? @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
|
1217
|
+
owner User? @relation("OwnedService", fields: [ownerId], references: [id])
|
|
1218
|
+
sponsor Sponsor? @relation(fields: [sponsorId], references: [id], onDelete: Cascade)
|
|
1219
|
+
stripeAccount StripeAccount? @relation(fields: [stripeAccountId], references: [id], onDelete: Restrict)
|
|
1220
|
+
targetAudience TargetAudience? @relation(fields: [targetAudienceId], references: [id], onDelete: Cascade)
|
|
1221
|
+
vendor Vendor? @relation(fields: [vendorId], references: [id], onDelete: Cascade)
|
|
1222
|
+
venue Venue? @relation(fields: [venueId], references: [id], onDelete: Cascade)
|
|
1223
|
+
serviceBlocks ServiceBlock[] @relation("ServiceBlocks")
|
|
1224
|
+
bookings ServiceBooking[]
|
|
1225
|
+
serviceLinks ServiceLink[]
|
|
1226
|
+
serviceRatesAssociation ServiceRatesAssociation?
|
|
1227
|
+
sponsorBookingRequests SponsorBookingRequest[] @relation("SponsorBookingService")
|
|
1228
|
+
favoritedBy UserFavorite[]
|
|
1229
|
+
userPromoCodeRedemption UserPromoCodeRedemption[]
|
|
1230
|
+
vendorBookingRequests VendorBookingRequest[] @relation("VendorBookingService")
|
|
1231
|
+
volunteerService VolunteerService? @relation("ServiceToVolunteer")
|
|
1232
|
+
associatedBashesReferencingMe AssociatedBash[] @relation("AssociatedBashToService")
|
|
1233
|
+
bashEvent BashEvent[] @relation("BashEventToService")
|
|
1234
|
+
media Media[] @relation("MediaToService")
|
|
1235
|
+
|
|
1236
|
+
@@index([serviceListingStripeSubscriptionId])
|
|
1237
|
+
@@index([isFreeFirstListing])
|
|
1200
1238
|
}
|
|
1201
1239
|
|
|
1202
1240
|
model StripeAccount {
|
|
@@ -1291,31 +1329,41 @@ model EntertainmentService {
|
|
|
1291
1329
|
}
|
|
1292
1330
|
|
|
1293
1331
|
model Vendor {
|
|
1294
|
-
id String
|
|
1332
|
+
id String @id @default(cuid())
|
|
1295
1333
|
serviceRangeId String?
|
|
1296
1334
|
vendorServiceTypes VendorServiceType[]
|
|
1297
1335
|
vendorServiceSubType String?
|
|
1298
1336
|
yearsOfExperience YearsOfExperience
|
|
1299
|
-
crowdSizeId String?
|
|
1337
|
+
crowdSizeId String? @unique
|
|
1300
1338
|
goodsOrServices String[]
|
|
1301
1339
|
menuItems String?
|
|
1302
1340
|
venueTypes String[]
|
|
1303
|
-
secondaryVenueTypes String[]
|
|
1341
|
+
secondaryVenueTypes String[] @default([])
|
|
1304
1342
|
vendorType String?
|
|
1305
1343
|
subType String?
|
|
1306
1344
|
otherSubType String?
|
|
1307
1345
|
detailsText String?
|
|
1308
|
-
minBoothFeeCents Int?
|
|
1309
|
-
maxBoothFeeCents Int?
|
|
1310
|
-
preferredBoothFeeCents Int?
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1346
|
+
minBoothFeeCents Int? @default(0)
|
|
1347
|
+
maxBoothFeeCents Int? @default(0)
|
|
1348
|
+
preferredBoothFeeCents Int? @default(0)
|
|
1349
|
+
|
|
1350
|
+
// Pricing Model Fields
|
|
1351
|
+
pricingModel PricingModel? @default(CUSTOM)
|
|
1352
|
+
baseRateCents Int? // Base rate in cents
|
|
1353
|
+
rateUnit String? // "per_person", "per_hour", "per_day", "flat"
|
|
1354
|
+
minimumChargeCents Int? // Minimum booking amount in cents
|
|
1355
|
+
minimumQuantity Int? // Minimum attendees/hours/days
|
|
1356
|
+
tierPricing Json? // For tiered pricing: [{name: "Bronze", priceCents: 100000, description: "..."}, ...]
|
|
1357
|
+
pricingNotes String? // Additional pricing details or terms
|
|
1358
|
+
|
|
1359
|
+
service Service?
|
|
1360
|
+
crowdSize AmountOfGuests? @relation(fields: [crowdSizeId], references: [id], onDelete: Cascade)
|
|
1361
|
+
serviceRange ServiceRange? @relation(fields: [serviceRangeId], references: [id])
|
|
1362
|
+
vendorBids VendorBid[]
|
|
1363
|
+
insurance VendorInsurance?
|
|
1364
|
+
permits VendorPermit[]
|
|
1365
|
+
preferences VendorPreferences?
|
|
1366
|
+
spaceRequirements VendorSpaceRequirements?
|
|
1319
1367
|
}
|
|
1320
1368
|
|
|
1321
1369
|
model VendorSpaceRequirements {
|
|
@@ -1413,9 +1461,19 @@ model Exhibitor {
|
|
|
1413
1461
|
goodsOrServices String[]
|
|
1414
1462
|
venueTypes String[]
|
|
1415
1463
|
secondaryVenueTypes String[] @default([])
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1464
|
+
|
|
1465
|
+
// Pricing Model Fields
|
|
1466
|
+
pricingModel PricingModel? @default(CUSTOM)
|
|
1467
|
+
baseRateCents Int? // Base rate in cents
|
|
1468
|
+
rateUnit String? // "per_person", "per_hour", "per_day", "flat"
|
|
1469
|
+
minimumChargeCents Int? // Minimum booking amount in cents
|
|
1470
|
+
minimumQuantity Int? // Minimum attendees/hours/days
|
|
1471
|
+
tierPricing Json? // For tiered pricing
|
|
1472
|
+
pricingNotes String? // Additional pricing details or terms
|
|
1473
|
+
|
|
1474
|
+
crowdSize AmountOfGuests? @relation(fields: [crowdSizeId], references: [id], onDelete: Cascade)
|
|
1475
|
+
serviceRange ServiceRange? @relation(fields: [serviceRangeId], references: [id])
|
|
1476
|
+
service Service?
|
|
1419
1477
|
}
|
|
1420
1478
|
|
|
1421
1479
|
model Sponsor {
|
|
@@ -1425,9 +1483,19 @@ model Sponsor {
|
|
|
1425
1483
|
crowdSizeId String? @unique
|
|
1426
1484
|
goodsOrServices String[]
|
|
1427
1485
|
menuItems String?
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1486
|
+
|
|
1487
|
+
// Pricing Model Fields
|
|
1488
|
+
pricingModel PricingModel? @default(CUSTOM)
|
|
1489
|
+
baseRateCents Int? // Base rate in cents
|
|
1490
|
+
rateUnit String? // "per_person", "per_hour", "per_day", "flat"
|
|
1491
|
+
minimumChargeCents Int? // Minimum booking amount in cents
|
|
1492
|
+
minimumQuantity Int? // Minimum attendees/hours/days
|
|
1493
|
+
tierPricing Json? // For tiered pricing: [{name: "Bronze", priceCents: 100000}, ...]
|
|
1494
|
+
pricingNotes String? // Additional pricing details or terms
|
|
1495
|
+
|
|
1496
|
+
service Service?
|
|
1497
|
+
crowdSize AmountOfGuests? @relation(fields: [crowdSizeId], references: [id])
|
|
1498
|
+
serviceRange ServiceRange? @relation(fields: [serviceRangeId], references: [id])
|
|
1431
1499
|
}
|
|
1432
1500
|
|
|
1433
1501
|
model Venue {
|
|
@@ -2241,6 +2309,8 @@ enum NotificationType {
|
|
|
2241
2309
|
ServiceBookingCancelled
|
|
2242
2310
|
ServiceBookingConfirmed
|
|
2243
2311
|
Message
|
|
2312
|
+
ConnectionRequest
|
|
2313
|
+
ConnectionAccepted
|
|
2244
2314
|
}
|
|
2245
2315
|
|
|
2246
2316
|
enum NotificationPriority {
|
|
@@ -2516,6 +2586,13 @@ enum TransferRequestStatus {
|
|
|
2516
2586
|
Expired
|
|
2517
2587
|
}
|
|
2518
2588
|
|
|
2589
|
+
enum ConnectionStatus {
|
|
2590
|
+
Pending
|
|
2591
|
+
Accepted
|
|
2592
|
+
Rejected
|
|
2593
|
+
Blocked
|
|
2594
|
+
}
|
|
2595
|
+
|
|
2519
2596
|
enum ServiceStatus {
|
|
2520
2597
|
Draft
|
|
2521
2598
|
Created
|
|
@@ -3855,6 +3932,15 @@ enum ServiceTypes {
|
|
|
3855
3932
|
Organizations
|
|
3856
3933
|
}
|
|
3857
3934
|
|
|
3935
|
+
enum PricingModel {
|
|
3936
|
+
FLAT_FEE // Fixed amount: "$500 for vendor booth"
|
|
3937
|
+
PER_ATTENDEE // Per person: "$50 per expected attendee"
|
|
3938
|
+
HOURLY // Per hour: "$200/hour, 4-hour minimum"
|
|
3939
|
+
PER_DAY // Per day: "$1,000/day"
|
|
3940
|
+
TIERED // Multiple options: "Bronze $1K, Silver $2.5K, Gold $5K"
|
|
3941
|
+
CUSTOM // Custom pricing structure with base rate + notes for negotiation
|
|
3942
|
+
}
|
|
3943
|
+
|
|
3858
3944
|
enum EntityType {
|
|
3859
3945
|
EVENT_SERVICE
|
|
3860
3946
|
ENTERTAINMENT_SERVICE
|