@bash-app/bash-common 30.105.0 → 30.106.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bash-app/bash-common",
3
- "version": "30.105.0",
3
+ "version": "30.106.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",
@@ -1485,6 +1485,8 @@ model Service {
1485
1485
  analytics ServiceAnalytics[] // Track service analytics
1486
1486
  scoutReferrals ScoutReferral[] @relation("ScoutServiceProfile")
1487
1487
  bookingCommissions BookingCommission[] @relation("CommissionServiceProfile")
1488
+ venueMatches VenueEntertainmentMatch[] @relation("VenueMatches")
1489
+ entertainerMatches VenueEntertainmentMatch[] @relation("EntertainerMatches")
1488
1490
 
1489
1491
  @@index([serviceListingStripeSubscriptionId])
1490
1492
  @@index([isFreeFirstListing])
@@ -1579,35 +1581,44 @@ model EntertainmentService {
1579
1581
  openToCollaboration Boolean @default(false)
1580
1582
  collaborationNote String?
1581
1583
  lookingForArtists String?
1582
- crowdSize AmountOfGuests? @relation(fields: [crowdSizeId], references: [id], onDelete: Cascade)
1583
- serviceRange ServiceRange? @relation(fields: [serviceRangeId], references: [id])
1584
- service Service?
1584
+
1585
+ // Venue Matching Fields
1586
+ lookingForVenues Boolean @default(false)
1587
+ venueRequirements String[] @default([])
1588
+ travelRadiusMiles Int? @default(50)
1589
+ preferredEventTypes String[] @default([])
1590
+ notifyOnMatchingVenues Boolean @default(true)
1591
+ lastMatchNotificationSent DateTime?
1592
+
1593
+ crowdSize AmountOfGuests? @relation(fields: [crowdSizeId], references: [id], onDelete: Cascade)
1594
+ serviceRange ServiceRange? @relation(fields: [serviceRangeId], references: [id])
1595
+ service Service?
1585
1596
  }
1586
1597
 
1587
1598
  model Vendor {
1588
- id String @id @default(cuid())
1589
- serviceRangeId String?
1590
-
1599
+ id String @id @default(cuid())
1600
+ serviceRangeId String?
1601
+
1591
1602
  // Type classification (use enums for data quality)
1592
- vendorProductTypes VendedProductType[] // For product vendors (selling goods)
1593
- vendorServiceTypes VendorServiceType[] // For service vendors (providing services)
1594
-
1603
+ vendorProductTypes VendedProductType[] // For product vendors (selling goods)
1604
+ vendorServiceTypes VendorServiceType[] // For service vendors (providing services)
1605
+
1595
1606
  // Legacy string fields (deprecated - use enum arrays above)
1596
- vendorServiceSubType String? // @deprecated Use vendorServiceTypes
1597
- subType String? // @deprecated Use vendorProductTypes or vendorServiceTypes
1598
- vendorType String? // "products" or "services" - determines which enum array to use
1599
- otherSubType String? // Custom type description when "Other" is selected
1600
-
1607
+ vendorServiceSubType String? // @deprecated Use vendorServiceTypes
1608
+ subType String? // @deprecated Use vendorProductTypes or vendorServiceTypes
1609
+ vendorType String? // "products" or "services" - determines which enum array to use
1610
+ otherSubType String? // Custom type description when "Other" is selected
1611
+
1601
1612
  yearsOfExperience YearsOfExperience
1602
- crowdSizeId String? @unique
1603
- goodsOrServices String[] // Specific items/services offered
1613
+ crowdSizeId String? @unique
1614
+ goodsOrServices String[] // Specific items/services offered
1604
1615
  menuItems String?
1605
1616
  venueTypes String[]
1606
- secondaryVenueTypes String[] @default([])
1617
+ secondaryVenueTypes String[] @default([])
1607
1618
  detailsText String?
1608
- minBoothFeeCents Int? @default(0)
1609
- maxBoothFeeCents Int? @default(0)
1610
- preferredBoothFeeCents Int? @default(0)
1619
+ minBoothFeeCents Int? @default(0)
1620
+ maxBoothFeeCents Int? @default(0)
1621
+ preferredBoothFeeCents Int? @default(0)
1611
1622
 
1612
1623
  // Pricing Model Fields
1613
1624
  pricingModel PricingModel? @default(CUSTOM)
@@ -1779,8 +1790,20 @@ model Venue {
1779
1790
  vibe String?
1780
1791
  dress String?
1781
1792
  pricingPlan VenuePricingPlan?
1782
- bashEvents BashEvent[]
1783
- service Service?
1793
+
1794
+ // Entertainment Matching Fields
1795
+ lookingForEntertainment Boolean @default(false)
1796
+ entertainmentTypes String[] @default([])
1797
+ entertainmentGenres String[] @default([])
1798
+ entertainmentNotes String?
1799
+ offersToEntertainers String[] @default([])
1800
+ preferredBookingFrequency String?
1801
+ typicalEventTypes String[] @default([])
1802
+ notifyOnMatchingMusicians Boolean @default(true)
1803
+ lastMatchNotificationSent DateTime?
1804
+
1805
+ bashEvents BashEvent[]
1806
+ service Service?
1784
1807
  }
1785
1808
 
1786
1809
  model UserPromoCodeRedemption {
@@ -4049,7 +4072,7 @@ enum VendedProductType {
4049
4072
  Woodwork
4050
4073
  LeatherGoods
4051
4074
  Textiles
4052
-
4075
+
4053
4076
  // Food & Beverage
4054
4077
  BakedGoods
4055
4078
  Beverages
@@ -4059,7 +4082,7 @@ enum VendedProductType {
4059
4082
  SweetTreats
4060
4083
  Spices
4061
4084
  Sauces
4062
-
4085
+
4063
4086
  // Beauty & Personal Care
4064
4087
  BodyCareProducts
4065
4088
  SkincareProducts
@@ -4067,7 +4090,7 @@ enum VendedProductType {
4067
4090
  Soaps
4068
4091
  Perfumes
4069
4092
  HairCareProducts
4070
-
4093
+
4071
4094
  // Fashion & Accessories
4072
4095
  Clothing
4073
4096
  TShirtsAndApparel
@@ -4076,7 +4099,7 @@ enum VendedProductType {
4076
4099
  Hats
4077
4100
  Bags
4078
4101
  Shoes
4079
-
4102
+
4080
4103
  // Home & Living
4081
4104
  HomeDecor
4082
4105
  Candles
@@ -4084,7 +4107,7 @@ enum VendedProductType {
4084
4107
  Succulents
4085
4108
  Furniture
4086
4109
  Kitchenware
4087
-
4110
+
4088
4111
  // Specialty Items
4089
4112
  Books
4090
4113
  Crystals
@@ -4092,21 +4115,21 @@ enum VendedProductType {
4092
4115
  HerbalRemedies
4093
4116
  VintageAntiques
4094
4117
  Collectibles
4095
-
4118
+
4096
4119
  // Media & Stationery
4097
4120
  PhotographyPrints
4098
4121
  StickersAndStationery
4099
4122
  Prints
4100
4123
  Zines
4101
-
4124
+
4102
4125
  // Kids & Pets
4103
4126
  Toys
4104
4127
  BabyItems
4105
4128
  PetProducts
4106
-
4129
+
4107
4130
  // Tech & Electronics
4108
4131
  TechAccessories
4109
-
4132
+
4110
4133
  Other
4111
4134
  }
4112
4135
 
@@ -4119,7 +4142,7 @@ enum VendorServiceType {
4119
4142
  CustomCalligraphy
4120
4143
  PortraitSketching
4121
4144
  SprayPaintArt
4122
-
4145
+
4123
4146
  // Beauty & Body Art
4124
4147
  FacePainting
4125
4148
  HairBraiding
@@ -4129,14 +4152,14 @@ enum VendorServiceType {
4129
4152
  AirbrushMakeup
4130
4153
  NailArt
4131
4154
  HairStyling
4132
-
4155
+
4133
4156
  // Wellness & Relaxation
4134
4157
  ChairMassages
4135
4158
  WellnessDemos
4136
4159
  YogaOrMovementClasses
4137
4160
  Reiki
4138
4161
  Aromatherapy
4139
-
4162
+
4140
4163
  // Entertainment & Performance
4141
4164
  Magician
4142
4165
  ClownServices
@@ -4144,26 +4167,26 @@ enum VendorServiceType {
4144
4167
  BubblePerformances
4145
4168
  JugglingActs
4146
4169
  MimeArtist
4147
-
4170
+
4148
4171
  // Kids & Family
4149
4172
  KidsCraftBooths
4150
4173
  PettingZoos
4151
4174
  PonyRides
4152
4175
  BounceHouseOperator
4153
4176
  GameBoothOperator
4154
-
4177
+
4155
4178
  // Photo & Media
4156
4179
  PhotoBooths
4157
4180
  InstantPhotography
4158
4181
  VideoMessages
4159
4182
  GreenScreenPhotos
4160
-
4183
+
4161
4184
  // Spiritual & Mystical
4162
4185
  PsychicOrTarotReadings
4163
4186
  PalmReading
4164
4187
  AuraPhotography
4165
4188
  Astrology
4166
-
4189
+
4167
4190
  Other
4168
4191
  }
4169
4192
 
@@ -4699,6 +4722,43 @@ enum AmbashadorApplicationStatus {
4699
4722
  Rejected
4700
4723
  }
4701
4724
 
4725
+ // ============================================
4726
+ // Venue-Entertainment Matching System
4727
+ // ============================================
4728
+
4729
+ // Tracks matches between venues and entertainment services
4730
+ // Includes partnership history for building trust and credibility
4731
+ model VenueEntertainmentMatch {
4732
+ id String @id @default(cuid())
4733
+ venueServiceId String
4734
+ entertainmentServiceId String
4735
+ matchScore Int @default(0)
4736
+ matchReasons String[] @default([])
4737
+ createdAt DateTime @default(now())
4738
+ notifiedVenue Boolean @default(false)
4739
+ notifiedEntertainer Boolean @default(false)
4740
+ venueViewed Boolean @default(false)
4741
+ entertainerViewed Boolean @default(false)
4742
+ venueInterested Boolean @default(false)
4743
+ entertainerInterested Boolean @default(false)
4744
+
4745
+ // Partnership History Tracking
4746
+ totalBookingsTogether Int @default(0)
4747
+ firstBookingDate DateTime?
4748
+ lastBookingDate DateTime?
4749
+ totalRevenue Float @default(0)
4750
+
4751
+ venueService Service @relation("VenueMatches", fields: [venueServiceId], references: [id], onDelete: Cascade)
4752
+ entertainmentService Service @relation("EntertainerMatches", fields: [entertainmentServiceId], references: [id], onDelete: Cascade)
4753
+
4754
+ @@unique([venueServiceId, entertainmentServiceId])
4755
+ @@index([venueServiceId])
4756
+ @@index([entertainmentServiceId])
4757
+ @@index([matchScore])
4758
+ @@index([createdAt])
4759
+ @@index([totalBookingsTogether])
4760
+ }
4761
+
4702
4762
  // ============================================
4703
4763
  // Service Category Suggestion System
4704
4764
  // ============================================