@stayin/stayin-core-db 1.2.4 → 1.2.5

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/client/edge.js CHANGED
@@ -35,12 +35,12 @@ exports.Prisma = Prisma
35
35
  exports.$Enums = {}
36
36
 
37
37
  /**
38
- * Prisma Client JS version: 6.13.0
39
- * Query Engine version: 361e86d0ea4987e9f53a565309b3eed797a6bcbd
38
+ * Prisma Client JS version: 6.17.1
39
+ * Query Engine version: 272a37d34178c2894197e17273bf937f25acdeac
40
40
  */
41
41
  Prisma.prismaVersion = {
42
- client: "6.13.0",
43
- engine: "361e86d0ea4987e9f53a565309b3eed797a6bcbd"
42
+ client: "6.17.1",
43
+ engine: "272a37d34178c2894197e17273bf937f25acdeac"
44
44
  }
45
45
 
46
46
  Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError;
@@ -1412,11 +1412,20 @@ const config = {
1412
1412
  {
1413
1413
  "fromEnvVar": null,
1414
1414
  "value": "debian-openssl-3.0.x"
1415
+ },
1416
+ {
1417
+ "fromEnvVar": null,
1418
+ "value": "rhel-openssl-3.0.x"
1419
+ },
1420
+ {
1421
+ "fromEnvVar": null,
1422
+ "value": "darwin-arm64"
1415
1423
  }
1416
1424
  ],
1417
1425
  "previewFeatures": [
1418
1426
  "driverAdapters",
1419
- "fullTextSearchPostgres"
1427
+ "fullTextSearchPostgres",
1428
+ "multiSchema"
1420
1429
  ],
1421
1430
  "sourceFilePath": "D:\\Zahid\\Work\\Stayin\\Code\\New\\STAYIN_CORE_DB\\prisma\\schema\\schema.prisma",
1422
1431
  "isCustomOutput": true
@@ -1426,8 +1435,8 @@ const config = {
1426
1435
  "schemaEnvPath": "../.env"
1427
1436
  },
1428
1437
  "relativePath": "../prisma/schema",
1429
- "clientVersion": "6.13.0",
1430
- "engineVersion": "361e86d0ea4987e9f53a565309b3eed797a6bcbd",
1438
+ "clientVersion": "6.17.1",
1439
+ "engineVersion": "272a37d34178c2894197e17273bf937f25acdeac",
1431
1440
  "datasourceNames": [
1432
1441
  "db"
1433
1442
  ],
@@ -1441,8 +1450,8 @@ const config = {
1441
1450
  }
1442
1451
  }
1443
1452
  },
1444
- "inlineSchema": "/// *\n/// * Flat\n/// * Represents a flat property.\nmodel Flat {\n id Int @id @default(autoincrement())\n businessId Int\n propertyCode String\n name String\n rent Int\n deposit Int\n areaId Int\n address String\n landmark String?\n googleMapsURL String?\n lat Float?\n lng Float?\n furnishType FlatFurnishType\n bhkType FlatBHKType\n propertyType FlatPropertyType @default(STAND_ALONE_APARTMENT)\n amenities FlatAmenity[]\n availableOn DateTime?\n priority FlatPriority?\n status RealEstatePropertyStatus @default(AVAILABLE)\n isPublic Boolean @default(false)\n thumbnailImage String?\n pmType FlatPmType?\n pmName String?\n pmContactNumber String?\n ownerName String?\n ownerNumber String?\n guideName String?\n guideNumber String?\n guideType FlatGuideType?\n teamGuideId Int?\n description String?\n bookingURL String?\n images String[]\n videos String[]\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now()) @updatedAt\n ageOfProperty Int?\n balconyCount Int?\n bathroomCount Int?\n carpetArea Float?\n coveredParking Int?\n facing FlatFacingDirection?\n flatNumber String?\n floorNumber Int?\n lockInPeriodInDays Int?\n maintenanceCharges Float?\n maintenanceChargesIncluded Boolean @default(false)\n openParking Int?\n paintingCharges String?\n parkingCharges String?\n petFriendly Boolean? @default(false)\n totalFloors Int?\n preferredTenantType FlatPreferredTenantType[]\n area RealEstateArea @relation(\"FlatToRealEstateArea\", fields: [areaId], references: [id], onDelete: Cascade)\n business RealEstateBusiness @relation(\"FlatToRealEstateBusiness\", fields: [businessId], references: [id], onDelete: Cascade)\n teamGuide RealEstateBusinessUser? @relation(\"TeamGuideToFlat\", fields: [teamGuideId], references: [id])\n variations FlatVariation[]\n realEstateLeadsOnFlats RealEstateLeadsOnFlats[] @relation(\"RealEstateLeadsOnFlatsToFlat\")\n realEstatePropertyAnalytics RealEstatePropertyAnalytics[] @relation(\"RealEstatePropertyAnalyticsToFlat\")\n realEstatePropertyViews RealEstatePropertyView[] @relation(\"RealEstatePropertyViewToFlat\")\n RealEstateProfileCustomView RealEstateProfileCustomView[] @relation(\"RealEstateProfileCustomViewFlats\")\n propertyEvents RealEstatePropertyEvent[] @relation(\"FlatToPropertyEvent\")\n ctaType FlatCtaType @default(SCHEDULE_VISIT)\n ctaPhoneNumber String?\n ctaWhatsappNumber String?\n ctaCustomLink String?\n ctaButtonTitle String?\n\n @@unique([businessId, propertyCode])\n @@index([businessId, areaId])\n @@schema(\"flat\")\n}\n\n/// *\n/// * FlatVariation\n/// * Represents variations of a flat property.\nmodel FlatVariation {\n id Int @id @default(autoincrement())\n flatId Int\n name String?\n description String?\n rent Int?\n deposit Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now()) @updatedAt\n flat Flat @relation(fields: [flatId], references: [id], onDelete: Cascade)\n\n @@schema(\"flat\")\n}\n\nenum FlatBHKType {\n ONE_RK\n ONE_BHK\n TWO_BHK\n THREE_BHK\n FOUR_BHK\n ONE_RB\n\n @@schema(\"flat\")\n}\n\nenum FlatFurnishType {\n UNFURNISHED\n SEMI_FURNISHED\n FULLY_FURNISHED\n\n @@schema(\"flat\")\n}\n\nenum FlatPriority {\n HIGH\n LOW\n CRITICAL\n MEDIUM\n\n @@schema(\"flat\")\n}\n\nenum FlatPreferredTenantType {\n ANYONE\n FAMILY\n BACHELOR\n STUDENT\n WORKING\n COUPLE\n\n @@schema(\"flat\")\n}\n\nenum FlatPropertyType {\n STAND_ALONE_APARTMENT\n INDIVIDUAL_HOUSE\n GATED_SOCIETY\n SHARED_APARTMENT\n CONDO\n STUDIO_APARTMENT\n\n @@schema(\"flat\")\n}\n\nenum FlatAmenity {\n TWO_WHEELER_PARKING\n FOUR_WHEELER_PARKING\n AIR_CONDITIONER\n BALCONY\n CLOSET\n COFFEE_TABLE\n COMMON_WASHING_MACHINE\n DINING_TABLE\n FRIDGE\n KITCHEN_APPLIANCES\n KING_SIZED_BED\n POWER_BACKUP\n LIFT\n RO_WATER_AQUA_GUARD\n QUEEN_SIZED_BED\n SECURITY\n SOFA\n SINGLE_BED\n TV\n WASHING_MACHINE\n TWIN_SIZED_BED\n WATER_HEATER\n UTILITY_AREA\n STUDY_TABLE\n WIFI\n GYM\n CCTV_SECURITY\n PET_FRIENDLY\n\n @@schema(\"flat\")\n}\n\nenum FlatPmType {\n OWNER\n CARETAKER\n BROKER\n AGENCY\n BUSINESS\n OTHER\n\n @@schema(\"flat\")\n}\n\nenum FlatGuideType {\n OWNER\n CARETAKER\n BROKER\n AGENCY\n BUSINESS\n OTHER\n\n @@schema(\"flat\")\n}\n\nenum FlatFacingDirection {\n NORTH\n EAST\n WEST\n SOUTH\n\n @@schema(\"flat\")\n}\n\nenum FlatCtaType {\n CALL\n SCHEDULE_VISIT\n CUSTOM_LINK\n WHATSAPP\n\n @@schema(\"flat\")\n}\n\n/// *\n/// * OwnerBusiness\n/// * Represents the association between a business and its owner.\nmodel OwnerBusiness {\n id Int @id @default(autoincrement())\n businessId Int @unique\n ownerUserId Int\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n ownerUser CoreUser @relation(\"OwnerBusinessOwner\", fields: [ownerUserId], references: [id], onDelete: Cascade)\n\n @@schema(\"owner\")\n}\n\n/// *\n/// * PgProperty\n/// * Represents a PG property.\nmodel PgProperty {\n id Int @id @default(autoincrement())\n businessId Int\n propertyCode String\n name String\n status RealEstatePropertyStatus @default(AVAILABLE)\n areaId Int\n address String\n landmark String?\n exactLocation String?\n googleMapsURL String?\n lat Float?\n lng Float?\n pgPreferredTenantType PgPreferredTenant\n professionPreference String?\n lockInPeriod PgLockInPeriod?\n noticePeriod PgNoticePeriod?\n pgRules PgRules[]\n foodProvided PgFoodProvided[]\n vegOrNonVeg PgFoodType\n foodPricing String?\n foodMenu String?\n otherServices PgOtherService[]\n commonAreaAmenities PgAmenity[]\n roomAmenities PgAmenity[]\n additionalAmenities String?\n isPublic Boolean @default(false)\n ownerName String?\n ownerNumber String?\n guideName String?\n guideNumber String?\n teamGuideId Int?\n description String?\n bookingURL String?\n images String[]\n videos String?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n area RealEstateArea @relation(\"PgPropertyToRealEstateArea\", fields: [areaId], references: [id], onDelete: Cascade)\n business RealEstateBusiness @relation(\"PgPropertyToRealEstateBusiness\", fields: [businessId], references: [id], onDelete: Cascade)\n teamGuide RealEstateBusinessUser? @relation(\"TeamGuideToPgProperty\", fields: [teamGuideId], references: [id])\n pgSharingOptions PgSharingOption[] @relation(\"PgSharingOptionToPgProperty\")\n variations PgVariation[]\n realEstateLeadsOnPgs RealEstateLeadsOnPgs[] @relation(\"RealEstateLeadsOnPgsToPgProperty\")\n realEstatePropertyAnalytics RealEstatePropertyAnalytics[] @relation(\"RealEstatePropertyAnalyticsToPgProperty\")\n realEstatePropertyViews RealEstatePropertyView[] @relation(\"RealEstatePropertyViewToPgProperty\")\n RealEstateProfileCustomView RealEstateProfileCustomView[] @relation(\"RealEstateProfileCustomViewPgs\")\n\n @@unique([businessId, propertyCode])\n @@index([businessId, areaId])\n @@schema(\"pg\")\n}\n\n/// *\n/// * PgVariation\n/// * Represents variations of a PG property.\nmodel PgVariation {\n id Int @id @default(autoincrement())\n pgId Int\n name String?\n description String?\n rent Int?\n deposit Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n pg PgProperty @relation(fields: [pgId], references: [id], onDelete: Cascade)\n\n @@schema(\"pg\")\n}\n\n/// *\n/// * PgSharingOption\n/// * Represents sharing options for a PG property.\nmodel PgSharingOption {\n id Int @id @default(autoincrement())\n pgId Int\n sharingType PgSharingType\n rent Int\n deposit Int\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n pg PgProperty @relation(\"PgSharingOptionToPgProperty\", fields: [pgId], references: [id], onDelete: Cascade)\n\n @@schema(\"pg\")\n}\n\nenum PgPreferredTenant {\n MALE\n FEMALE\n ANYONE\n\n @@schema(\"pg\")\n}\n\nenum PgAmenity {\n FOUR_WHEELER_PARKING\n TWO_WHEELER_PARKING\n AIR_CONDITIONER\n BALCONY\n CLOSET\n COFFEE_TABLE\n COMMON_WASHING_MACHINE\n DINING_TABLE\n FRIDGE\n KITCHEN_APPLIANCES\n KING_SIZED_BED\n POWER_BACKUP\n LIFT\n RO_WATER_AQUA_GUARD\n QUEEN_SIZED_BED\n SECURITY\n SOFA\n SINGLE_BED\n TV\n WASHING_MACHINE\n TWIN_SIZED_BED\n WATER_HEATER\n UTILITY_AREA\n STUDY_TABLE\n WIFI\n GYM\n CCTV_SECURITY\n PET_FRIENDLY\n\n @@schema(\"pg\")\n}\n\nenum PgSharingType {\n SINGLE_SHARING\n DOUBLE_SHARING\n TRIPLE_SHARING\n FOUR_SHARING\n\n @@schema(\"pg\")\n}\n\nenum PgLockInPeriod {\n ONE_MONTH\n TWO_MONTHS\n THREE_MONTHS\n FOUR_MONTHS\n FIVE_MONTHS\n SIX_MONTHS\n ONE_YEAR\n\n @@schema(\"pg\")\n}\n\nenum PgNoticePeriod {\n DAYS_15\n DAYS_30\n DAYS_60\n\n @@schema(\"pg\")\n}\n\nenum PgRules {\n NO_SMOKING\n NO_ALCOHOL\n NO_MALE_ENTRY\n GATE_CLOSES_AT_NIGHT\n NO_FEMALE_ENTRY\n NO_GUARDIANS_ALLOWED\n NO_RULES\n VEG_ONLY\n NO_VISITORS_OPPOSITE_GENDER\n CURFEW_TIME\n\n @@schema(\"pg\")\n}\n\nenum PgFoodProvided {\n NO_FOOD_PROVIDED\n BREAKFAST\n LUNCH\n DINNER\n EVENING_SNACKS\n\n @@schema(\"pg\")\n}\n\nenum PgFoodType {\n VEG\n NON_VEG\n BOTH\n\n @@schema(\"pg\")\n}\n\nenum PgOtherService {\n LAUNDRY\n WARDEN_FACILITY\n ROOM_CLEANING\n NONE\n\n @@schema(\"pg\")\n}\n\n/// *\n/// * RealEstateQuery\n/// * Now links directly to a business-specific lead.\nmodel RealEstateQuery {\n id Int @id @default(autoincrement())\n queryType String\n queryDesc String\n status RealEstateQueryStatus @default(NEW)\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n coreUserId Int\n realEstateBizId Int\n realEstateLeadId Int\n propertyCode String?\n coreUser CoreUser @relation(fields: [coreUserId], references: [id], onDelete: Cascade)\n realEstateBiz RealEstateBusiness @relation(fields: [realEstateBizId], references: [id], onDelete: Cascade)\n realEstateLead RealEstateLead @relation(\"RealEstateQueryToRealEstateLead\", fields: [realEstateLeadId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateNote\nmodel RealEstateNote {\n id Int @id @default(autoincrement())\n noteType RealEstateNoteType\n noteContent String\n realEstateBusinessId Int\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n realEstateBusiness RealEstateBusiness @relation(\"BusinessToRealEstateNotes\", fields: [realEstateBusinessId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateFavorite\nmodel RealEstateFavorite {\n id Int @id @default(autoincrement())\n coreFavoriteId Int @unique\n favoriteFlats Int[]\n favoritePgs Int[]\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n coreFavorite CoreFavorite @relation(fields: [coreFavoriteId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateCoreLead\n/// * Represents a core lead with only shared profile details.\nmodel RealEstateCoreLead {\n id Int @id @default(autoincrement())\n coreUserId Int? @unique\n name String?\n phoneNumber String? @unique\n email String? @unique\n gender CoreGender?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n coreUser CoreUser? @relation(\"RealEstateCoreLeadToCoreUser\", fields: [coreUserId], references: [id])\n flatCoreRequirements RealEstateFlatCoreLead?\n realEstateLeads RealEstateLead[]\n pgCoreRequirements RealEstatePGCoreLead?\n areas CoreArea[] @relation(\"CoreLeadAreas\")\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateFlatCoreLead\n/// * Optional, 1:1 extension of RealEstateCoreLead for flat-specific requirements.\nmodel RealEstateFlatCoreLead {\n id Int @id @default(autoincrement())\n realEstateCoreLeadId Int @unique\n moveInDate DateTime?\n budgetStart Int?\n budgetEnd Int?\n note String?\n bhkType FlatBHKType[]\n furnishings FlatFurnishType[]\n amenities FlatAmenity[]\n propertyTypes FlatPropertyType[] @default([])\n facingDirections FlatFacingDirection[] @default([])\n leadTenantType FlatPreferredTenantType[] @default([])\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n realEstateCoreLead RealEstateCoreLead @relation(fields: [realEstateCoreLeadId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstatePGCoreLead\n/// * Optional, 1:1 extension of RealEstateCoreLead for PG-specific requirements.\nmodel RealEstatePGCoreLead {\n id Int @id @default(autoincrement())\n realEstateCoreLeadId Int @unique\n sharingType PgSharingType?\n pgAmenities PgAmenity[]\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n realEstateCoreLead RealEstateCoreLead @relation(fields: [realEstateCoreLeadId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateBusiness\n/// * Represents a real estate business entity.\nmodel RealEstateBusiness {\n id Int @id @default(autoincrement())\n businessId Int @unique\n category RealEstateCategory\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n flatProperty Flat[] @relation(\"FlatToRealEstateBusiness\")\n pgProperty PgProperty[] @relation(\"PgPropertyToRealEstateBusiness\")\n business CoreBusiness @relation(\"CoreBusinessToRealEstateBusiness\", fields: [businessId], references: [id], onDelete: Cascade)\n businessAnalytics RealEstateBusinessAnalytics? @relation(\"RealEstateBusinessAnalyticsToRealEstateBusiness\")\n leads RealEstateLead[]\n notes RealEstateNote[] @relation(\"BusinessToRealEstateNotes\")\n RealEstateProfileCustomView RealEstateProfileCustomView[]\n propertyAnalytics RealEstatePropertyAnalytics[] @relation(\"RealEstatePropertyAnalyticsToRealEstateBusiness\")\n propertyViews RealEstatePropertyView[] @relation(\"RealEstatePropertyViewToRealEstateBusiness\")\n realEstateQueries RealEstateQuery[]\n visits RealEstateVisit[]\n areas RealEstateArea[] @relation(\"RealEstateAreaToBusiness\")\n customCtaEnabled Boolean @default(false)\n propertyEvents RealEstatePropertyEvent[] @relation(\"BusinessToPropertyEvent\")\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateBusinessUser\n/// * Represents a user within a real estate business.\nmodel RealEstateBusinessUser {\n id Int @id @default(autoincrement())\n coreBusinessUserId Int @unique\n rePermissions RealEstatePermission[] @default([])\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n guidingFlats Flat[] @relation(\"TeamGuideToFlat\")\n guidingPgProperties PgProperty[] @relation(\"TeamGuideToPgProperty\")\n coreBusinessUser CoreBusinessUser @relation(\"RealEstateBusinessUserToCoreBusinessUser\", fields: [coreBusinessUserId], references: [id], onDelete: Cascade)\n assignedLeads RealEstateLead[] @relation(\"RealEstateLeadToRealEstateBusinessUser\")\n realEstateLeadConversions RealEstateLeadConversion[] @relation(\"ConversionToBusinessUser\")\n propertyViews RealEstatePropertyView[] @relation(\"RealEstatePropertyViewToRealEstateBusinessUser\")\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateArea\n/// * Extends CoreArea with real estate–specific fields.\nmodel RealEstateArea {\n id Int @id @default(autoincrement())\n coreAreaId Int @unique\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n flats Flat[] @relation(\"FlatToRealEstateArea\")\n pgProperties PgProperty[] @relation(\"PgPropertyToRealEstateArea\")\n coreArea CoreArea @relation(\"CoreAreaToRealEstateArea\", fields: [coreAreaId], references: [id], onDelete: Cascade)\n propertyViews RealEstatePropertyView[]\n realEstateBusinesses RealEstateBusiness[] @relation(\"RealEstateAreaToBusiness\")\n realEstateLeads RealEstateLead[] @relation(\"RealEstateLeadAreas\")\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateLead\n/// * Represents a business-specific lead.\nmodel RealEstateLead {\n id Int @id @default(autoincrement())\n name String\n phoneNumber String?\n email String?\n countryCode CoreAllowedCountryCode @default(IN)\n gender CoreGender?\n status RealEstateLeadStatus\n leadType RealEstateLeadType?\n preferredCallTime RealEstatePreferredCallTime?\n moveInDate DateTime?\n budgetStart Int?\n budgetEnd Int?\n notes String?\n realEstateCoreLeadId Int\n realEstateBizId Int\n assignedToId Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n flatLead RealEstateFlatLead?\n pgLead RealEstatePGLead?\n assignedTo RealEstateBusinessUser? @relation(\"RealEstateLeadToRealEstateBusinessUser\", fields: [assignedToId], references: [id])\n realEstateBiz RealEstateBusiness @relation(fields: [realEstateBizId], references: [id], onDelete: Cascade)\n realEstateCoreLead RealEstateCoreLead @relation(fields: [realEstateCoreLeadId], references: [id], onDelete: Cascade)\n leadConversions RealEstateLeadConversion[] @relation(\"RealEstateLeadConversionToRealEstateLead\")\n realEstateLeadsOnFlats RealEstateLeadsOnFlats[] @relation(\"RealEstateLeadsOnFlatsToRealEstateLead\")\n realEstateLeadsOnPgs RealEstateLeadsOnPgs[] @relation(\"RealEstateLeadsOnPgsToRealEstateLead\")\n queries RealEstateQuery[] @relation(\"RealEstateQueryToRealEstateLead\")\n visits RealEstateVisit[] @relation(\"RealEstateVisitToRealEstateLead\")\n areas RealEstateArea[] @relation(\"RealEstateLeadAreas\")\n leadSources RealEstateLeadSource[] @default([])\n\n @@unique([realEstateBizId, phoneNumber])\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateVisit\n/// * Represents a visit associated with a real estate lead.\nmodel RealEstateVisit {\n id Int @id @default(autoincrement())\n leadId Int\n realEstateBizId Int\n propertyCode String\n visitType RealEstateCategory?\n scheduledAt DateTime\n status RealEstateVisitStatus @default(SCHEDULED)\n notes String?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n propertyViews RealEstatePropertyView[] @relation(\"RealEstatePropertyViewToRealEstateVisit\")\n lead RealEstateLead @relation(\"RealEstateVisitToRealEstateLead\", fields: [leadId], references: [id], onDelete: Cascade)\n realEstateBusiness RealEstateBusiness @relation(fields: [realEstateBizId], references: [id], onDelete: Cascade)\n visitAnalytics RealEstateVisitAnalytics[] @relation(\"RealEstateVisitAnalyticsToRealEstateVisit\")\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateVisitAnalytics\n/// * Represents analytics data for a real estate visit.\nmodel RealEstateVisitAnalytics {\n id Int @id @default(autoincrement())\n visitId Int\n duration Int\n feedback String?\n rated Boolean @default(false)\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n visit RealEstateVisit @relation(\"RealEstateVisitAnalyticsToRealEstateVisit\", fields: [visitId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateLeadConversion\n/// * Represents the conversion of a lead.\nmodel RealEstateLeadConversion {\n id Int @id @default(autoincrement())\n leadId Int\n convertedAt DateTime @default(now())\n convertedById Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n convertedBy RealEstateBusinessUser? @relation(\"ConversionToBusinessUser\", fields: [convertedById], references: [id])\n lead RealEstateLead @relation(\"RealEstateLeadConversionToRealEstateLead\", fields: [leadId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstatePropertyView\n/// * Represents a view of a property in real estate.\nmodel RealEstatePropertyView {\n id Int @id @default(autoincrement())\n propertyType RealEstatePropertyType\n viewedAt DateTime @default(now())\n realEstateBizUserId Int?\n realEstateBizId Int\n areaId Int?\n visitId Int?\n flatId Int?\n pgId Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n area RealEstateArea? @relation(fields: [areaId], references: [id])\n flat Flat? @relation(\"RealEstatePropertyViewToFlat\", fields: [flatId], references: [id])\n pg PgProperty? @relation(\"RealEstatePropertyViewToPgProperty\", fields: [pgId], references: [id])\n realEstateBusiness RealEstateBusiness @relation(\"RealEstatePropertyViewToRealEstateBusiness\", fields: [realEstateBizId], references: [id], onDelete: Cascade)\n realEstateBusinessUser RealEstateBusinessUser? @relation(\"RealEstatePropertyViewToRealEstateBusinessUser\", fields: [realEstateBizUserId], references: [id])\n visit RealEstateVisit? @relation(\"RealEstatePropertyViewToRealEstateVisit\", fields: [visitId], references: [id])\n\n @@index([realEstateBizId, propertyType, viewedAt])\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateBusinessAnalytics\n/// * Represents analytics data for a real estate business.\nmodel RealEstateBusinessAnalytics {\n id Int @id @default(autoincrement())\n businessId Int @unique\n totalLeads Int @default(0)\n totalVisits Int @default(0)\n totalPropertyViews Int @default(0)\n monthlyLeads Int @default(0)\n monthlyVisits Int @default(0)\n monthlyPropertyViews Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n realEstateBusiness RealEstateBusiness @relation(\"RealEstateBusinessAnalyticsToRealEstateBusiness\", fields: [businessId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstatePropertyAnalytics\n/// * Represents analytics data for a specific property.\nmodel RealEstatePropertyAnalytics {\n id Int @id @default(autoincrement())\n propertyType RealEstatePropertyType\n realEstateBizId Int\n totalViews Int @default(0)\n uniqueViews Int @default(0)\n averageViewDuration Float @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n flatId Int?\n pgId Int?\n flat Flat? @relation(\"RealEstatePropertyAnalyticsToFlat\", fields: [flatId], references: [id])\n pg PgProperty? @relation(\"RealEstatePropertyAnalyticsToPgProperty\", fields: [pgId], references: [id])\n realEstateBusiness RealEstateBusiness @relation(\"RealEstatePropertyAnalyticsToRealEstateBusiness\", fields: [realEstateBizId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateLeadsOnFlats\n/// * Join table for M:N relationship between RealEstateLead and Flat.\nmodel RealEstateLeadsOnFlats {\n leadId Int\n flatId Int\n flat Flat @relation(\"RealEstateLeadsOnFlatsToFlat\", fields: [flatId], references: [id], onDelete: Cascade)\n lead RealEstateLead @relation(\"RealEstateLeadsOnFlatsToRealEstateLead\", fields: [leadId], references: [id], onDelete: Cascade)\n\n @@id([leadId, flatId])\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateLeadsOnPgs\n/// * Join table for M:N relationship between RealEstateLead and PgProperty.\nmodel RealEstateLeadsOnPgs {\n leadId Int\n pgId Int\n lead RealEstateLead @relation(\"RealEstateLeadsOnPgsToRealEstateLead\", fields: [leadId], references: [id], onDelete: Cascade)\n pg PgProperty @relation(\"RealEstateLeadsOnPgsToPgProperty\", fields: [pgId], references: [id], onDelete: Cascade)\n\n @@id([leadId, pgId])\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateFlatLead\n/// * Represents a flat-specific lead extension.\nmodel RealEstateFlatLead {\n id Int @id @default(autoincrement())\n realEstateLeadId Int @unique\n amenities FlatAmenity[]\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n bhkType FlatBHKType[]\n furnishings FlatFurnishType[]\n realEstateLead RealEstateLead @relation(fields: [realEstateLeadId], references: [id], onDelete: Cascade)\n area CoreArea[] @relation(\"CoreAreaToRealEstateFlatLead\")\n\n @@map(\"FlatLead\")\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstatePGLead\n/// * Represents a PG-specific lead extension.\nmodel RealEstatePGLead {\n id Int @id @default(autoincrement())\n realEstateLeadId Int @unique\n sharingType PgSharingType?\n pgAmenities PgAmenity[]\n budget Int?\n areaId Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n area CoreArea? @relation(\"CoreAreaToRealEstatePgLead\", fields: [areaId], references: [id])\n realEstateLead RealEstateLead @relation(fields: [realEstateLeadId], references: [id], onDelete: Cascade)\n\n @@map(\"PGLead\")\n @@schema(\"real_estate\")\n}\n\nmodel RealEstateProfileCustomView {\n id Int @id @default(autoincrement())\n title String\n description String?\n businessId Int\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n business RealEstateBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n flats Flat[] @relation(\"RealEstateProfileCustomViewFlats\")\n pgs PgProperty[] @relation(\"RealEstateProfileCustomViewPgs\")\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstatePropertyEvent\n/// * A log of every click/share/CTA action on a flat.\nmodel RealEstatePropertyEvent {\n id Int @id @default(autoincrement())\n flatId Int?\n realEstateBizId Int\n eventType PropertyEventType\n createdAt DateTime @default(now())\n\n /// Relations\n flat Flat? @relation(\"FlatToPropertyEvent\", fields: [flatId], references: [id], onDelete: Cascade)\n realEstateBusiness RealEstateBusiness @relation(\"BusinessToPropertyEvent\", fields: [realEstateBizId], references: [id], onDelete: Cascade)\n\n @@index([flatId])\n @@index([realEstateBizId])\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * PropertyEventType\n/// * All the different click/share event types we want to track.\nenum PropertyEventType {\n SHARE_CLICK\n VISIT_CLICK\n QUERY_CLICK\n CTA_CALL\n CTA_WHATSAPP\n CTA_CUSTOM_LINK\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstatePermission {\n VIEW_VISITS\n EDIT_VISITS\n CREATE_VISITS\n DELETE_VISITS\n ASSIGN_VISITS\n VIEW_PROPERTIES\n EDIT_PROPERTIES\n DELETE_PROPERTIES\n UPLOAD_PROPERTIES\n VIEW_PROPERTY_FLAT_OWNER_DETAILS\n VIEW_PROPERTY_FLAT_LOCATION\n VIEW_LEADS_FLAT_CONTACT_INFO\n MANAGE_PROPERTY_FLAT_OWNER_DETAILS\n MANAGE_PROPERTY_FLAT_LOCATION\n MANAGE_LEADS_FLAT_CONTACT_INFO\n VIEW_QUERIES\n EDIT_QUERIES\n DELETE_QUERIES\n CREATE_QUERIES\n MANAGE_QUERIES\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstatePreferredCallTime {\n MORNING\n AFTERNOON\n NIGHT\n EVENING\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstatePropertyStatus {\n AVAILABLE\n NOT_AVAILABLE\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstateCategory {\n FLAT\n PG\n OWNER\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstateLeadStatus {\n NEW\n IN_CONTACT\n BOOKED\n VISITED\n CLOSED\n LOST\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstateLeadType {\n FLAT\n SALE\n OTHER\n PG\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstateVisitStatus {\n SCHEDULED\n COMPLETED\n CANCELLED\n RESCHEDULED\n NO_SHOW\n RE_VISIT\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstatePropertyType {\n FLAT\n PG\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstateNoteType {\n RED_NOTE\n BLUE_NOTE\n GREEN_NOTE\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstateQueryStatus {\n NEW\n IN_PROGRESS\n RESOLVED\n REJECTED\n CLOSED\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstateLeadSource {\n MANUALLY_ADDED\n STAYIN_SENT\n QUERY_RAISED\n VISIT_REQUESTED\n PROPERTY_ENQUIRY\n\n @@schema(\"real_estate\")\n}\n\ngenerator client {\n provider = \"prisma-client-js\"\n previewFeatures = [\"driverAdapters\", \"fullTextSearchPostgres\"]\n\n binaryTargets = [\"native\", \"debian-openssl-3.0.x\"]\n output = \"../../client\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n schemas = [\"core\", \"flat\", \"owner\", \"pg\", \"real_estate\"]\n}\n\n/// *\n/// * CoreUser\n/// * Represents a user in the system.\nmodel CoreUser {\n id Int @id @default(autoincrement())\n email String? @unique\n username String? @unique\n hash String?\n firstName String\n lastName String?\n isHiddenProfile Boolean @default(false)\n countryCode CoreAllowedCountryCode @default(IN)\n phoneNumber String? @unique\n googleId String? @unique\n isActive Boolean @default(true)\n gender CoreGender?\n dateOfBirth DateTime?\n profilePicture String?\n resetToken String?\n resetTokenExpiry DateTime?\n authProvider CoreAuthenticationProvider @default(EMAIL)\n instagramUrl String?\n twitterUrl String?\n youtubeUrl String?\n facebookUrl String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n passwordCreated Boolean @default(false)\n suspendedUntil DateTime?\n status CoreUserStatus @default(NORMAL)\n authoredLogs CoreBusinessLog[]\n authoredUpdates CoreBusinessUpdate[]\n businessUsers CoreBusinessUser[]\n uploadedDocs CoreDocument[] @relation(\"DocumentUser\")\n favorite CoreFavorite?\n invitesSent CoreInvite[] @relation(\"UserInvites\")\n posts CorePost[]\n refreshTokens CoreRefreshToken[]\n searchHistories CoreSearchHistory[]\n ownerBusinesses OwnerBusiness[] @relation(\"OwnerBusinessOwner\")\n realEstateCoreAsLeads RealEstateCoreLead? @relation(\"RealEstateCoreLeadToCoreUser\")\n realEstateQueries RealEstateQuery[]\n businessReviews CoreBusinessReview[]\n businessFlags CoreBusinessFlag[]\n flagsReceived CoreUserFlag[] @relation(\"UserFlagsReceived\")\n flagsGiven CoreUserFlag[] @relation(\"UserFlagsGiven\")\n statusHistory CoreUserStatusHistory[]\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreFavorite\n/// * Represents a user's favorite businesses.\nmodel CoreFavorite {\n id Int @id @default(autoincrement())\n userId Int @unique\n favoriteBusinesses Int[]\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n user CoreUser @relation(fields: [userId], references: [id], onDelete: Cascade)\n realEstateFavorite RealEstateFavorite?\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreBusiness\n/// * Represents a business entity.\nmodel CoreBusiness {\n id Int @id @default(autoincrement())\n businessName String\n username String? @unique\n isHiddenProfile Boolean @default(false)\n businessEmail String? @unique\n instagramHandle String?\n bio String?\n logoUrl String?\n manyChatId String?\n businessAddress String?\n businessContactNumber String?\n businessContactNumberCountryCode CoreAllowedCountryCode @default(IN)\n businessWebsite String?\n city CoreCity\n businessCategory CoreBusinessCategory\n instagramUrl String?\n twitterUrl String?\n youtubeUrl String?\n facebookUrl String?\n customLinks Json?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n deletedAt DateTime?\n isActive Boolean @default(true)\n status CoreBusinessStatus @default(IN_REVIEW)\n isVerified Boolean @default(false)\n businessLogs CoreBusinessLog[]\n businessUpdates CoreBusinessUpdate[]\n businessUsers CoreBusinessUser[]\n documents CoreDocument[]\n instagramAccount CoreInstagramAccount?\n invites CoreInvite[]\n posts CorePost[]\n subscriptions CoreSubscription[]\n realEstateBusiness RealEstateBusiness? @relation(\"CoreBusinessToRealEstateBusiness\")\n areas CoreArea[] @relation(\"CoreBusinessToCoreArea\")\n reviews CoreBusinessReview[]\n flags CoreBusinessFlag[]\n adminNotes CoreBusinessAdminNote[]\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreBusinessUser\n/// * Represents the association between users and businesses.\nmodel CoreBusinessUser {\n id Int @id @default(autoincrement())\n userId Int\n businessId Int\n roleInBusiness CoreOrganizationRole @default(STAFF)\n permissions CorePermission[] @default([])\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n user CoreUser @relation(fields: [userId], references: [id], onDelete: Cascade)\n realEstateBusinessUser RealEstateBusinessUser? @relation(\"RealEstateBusinessUserToCoreBusinessUser\")\n\n @@unique([userId, businessId])\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreInvite\n/// * Represents an invitation to join a business.\nmodel CoreInvite {\n id Int @id @default(autoincrement())\n businessId Int\n inviterId Int\n inviteeEmail String\n token String @unique\n expiresAt DateTime\n roleInBusiness CoreOrganizationRole\n permissions CorePermission[] @default([])\n businessPermissions Json?\n createdAt DateTime @default(now())\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n inviter CoreUser @relation(\"UserInvites\", fields: [inviterId], references: [id], onDelete: Cascade)\n status CoreInviteStatus @default(PENDING)\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreRefreshToken\n/// * Represents a user's refresh token for authentication.\nmodel CoreRefreshToken {\n deviceId String @id\n deviceName String\n token String\n expiresAt DateTime\n userId Int\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n user CoreUser @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreSubscription\n/// * Represents a business subscription.\nmodel CoreSubscription {\n id Int @id @default(autoincrement())\n businessId Int\n amount Int @default(0)\n type CoreSubscriptionType @default(BASIC)\n startDate DateTime @default(now())\n endDate DateTime?\n isActive Boolean @default(true)\n recurringPeriod CoreSubscriptionRecurringPeriod @default(MONTHLY)\n payments CorePayment[] @relation(\"SubscriptionInvoices\")\n\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CorePayment\n/// * Represents a payment made by a business.\nmodel CorePayment {\n id Int @id @default(autoincrement())\n subscriptionId Int\n invoiceNumber String @unique\n invoiceDate DateTime @default(now())\n amount Int\n currency CorePaymentCurrency @default(INR)\n taxAmount Int? @default(0)\n discountAmount Int? @default(0)\n totalAmount Int @default(0)\n pdfUrl String?\n status CorePaymentStatus @default(PENDING)\n createdAt DateTime @default(now())\n subscription CoreSubscription @relation(\"SubscriptionInvoices\", fields: [subscriptionId], references: [id], onDelete: Cascade)\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreSearchHistory\n/// * Represents a user's search history.\nmodel CoreSearchHistory {\n id Int @id @default(autoincrement())\n userId Int\n query String\n searchedAt DateTime @default(now())\n user CoreUser @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId, searchedAt])\n @@schema(\"core\")\n}\n\n/// *\n/// * CorePost\n/// * Represents a post made by a user within a business.\nmodel CorePost {\n id Int @id @default(autoincrement())\n businessId Int\n instagramPostId String?\n caption String?\n imageUrl String?\n createdAt DateTime @default(now())\n userId Int?\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n user CoreUser? @relation(fields: [userId], references: [id])\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreInstagramAccount\n/// * Represents a business's Instagram account.\nmodel CoreInstagramAccount {\n id Int @id @default(autoincrement())\n businessId Int @unique\n instagramUserId String?\n accessToken String?\n connectedAt DateTime? @default(now())\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreDocument\n/// * Represents documents uploaded by users or businesses.\nmodel CoreDocument {\n id Int @id @default(autoincrement())\n businessId Int\n userId Int?\n entityType String\n entityId Int?\n docUrl String\n docName String?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n user CoreUser? @relation(\"DocumentUser\", fields: [userId], references: [id])\n\n @@index([businessId, entityType, entityId])\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreBusinessLog\n/// * Represents logs related to business actions.\nmodel CoreBusinessLog {\n id BigInt @id @default(autoincrement())\n businessId Int\n userId Int?\n entityType String?\n entityId Int?\n action String\n oldData Json?\n newData Json?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n user CoreUser? @relation(fields: [userId], references: [id])\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreBusinessUpdate\n/// * Represents updates made to a business.\nmodel CoreBusinessUpdate {\n id Int @id @default(autoincrement())\n businessId Int\n userId Int?\n entityType String\n entityId Int\n content String\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n user CoreUser? @relation(fields: [userId], references: [id])\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreArea\n/// * This model serves as the GLOBAL concept of an area.\nmodel CoreArea {\n id Int @id @default(autoincrement())\n name String\n city CoreCity\n lat Float?\n lng Float?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n realEstatePgLeads RealEstatePGLead[] @relation(\"CoreAreaToRealEstatePgLead\")\n realEstateAreas RealEstateArea? @relation(\"CoreAreaToRealEstateArea\")\n realEstateFlatLeads RealEstateFlatLead[] @relation(\"CoreAreaToRealEstateFlatLead\")\n businesses CoreBusiness[] @relation(\"CoreBusinessToCoreArea\")\n realEstateCoreLeads RealEstateCoreLead[] @relation(\"CoreLeadAreas\")\n\n @@schema(\"core\")\n}\n\nmodel CoreBusinessReview {\n id Int @id @default(autoincrement())\n businessId Int\n userId Int?\n rating Int @default(0)\n comment String\n isDeleted Boolean @default(false)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n user CoreUser? @relation(fields: [userId], references: [id], onDelete: SetNull)\n\n @@unique([businessId, userId])\n @@index([businessId])\n @@schema(\"core\")\n}\n\nmodel CoreBusinessFlag {\n id Int @id @default(autoincrement())\n businessId Int\n userId Int\n reason String?\n isDeleted Boolean @default(false)\n createdAt DateTime @default(now())\n\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n user CoreUser @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([businessId, userId])\n @@index([businessId])\n @@schema(\"core\")\n}\n\nmodel CoreUserFlag {\n id Int @id @default(autoincrement())\n reportedUserId Int\n reportedById Int\n reason String?\n isDeleted Boolean @default(false)\n createdAt DateTime @default(now())\n\n reportedUser CoreUser @relation(\"UserFlagsReceived\", fields: [reportedUserId], references: [id], onDelete: Cascade)\n reportedBy CoreUser @relation(\"UserFlagsGiven\", fields: [reportedById], references: [id], onDelete: Cascade)\n\n @@unique([reportedUserId, reportedById])\n @@index([reportedUserId])\n @@index([reportedById])\n @@schema(\"core\")\n}\n\nmodel CoreBusinessAdminNote {\n id Int @id @default(autoincrement())\n businessId Int\n adminUserId Int\n note String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n\n @@index([businessId])\n @@schema(\"core\")\n}\n\nmodel CoreUserStatusHistory {\n id Int @id @default(autoincrement())\n userId Int\n oldStatus CoreUserStatus\n newStatus CoreUserStatus\n changedAt DateTime @default(now())\n changedById Int?\n reason String?\n\n user CoreUser @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@schema(\"core\")\n}\n\nenum CoreGender {\n MALE\n FEMALE\n OTHER\n\n @@schema(\"core\")\n}\n\nenum CoreAuthenticationProvider {\n GOOGLE\n EMAIL\n PHONE_WHATSAPP\n\n @@schema(\"core\")\n}\n\nenum CoreAllowedCountryCode {\n IN\n\n @@schema(\"core\")\n}\n\nenum CoreOrganizationRole {\n OWNER\n ADMIN\n STAFF\n\n @@schema(\"core\")\n}\n\nenum CorePermission {\n VIEW_LOGS\n EDIT_LOGS\n DELETE_LOGS\n UNDO_CHANGES\n MANAGE_FINANCE\n VIEW_FINANCE\n CREATE_LEADS\n VIEW_LEADS\n EDIT_LEADS\n DELETE_LEADS\n MANAGE_BUSINESS\n CREATE_USERS\n EDIT_USERS\n VIEW_USERS\n DELETE_USERS\n ALL_PERMISSIONS\n\n @@schema(\"core\")\n}\n\nenum CorePaymentStatus {\n PENDING\n COMPLETED\n FAILED\n\n @@schema(\"core\")\n}\n\nenum CorePaymentCurrency {\n INR\n\n @@schema(\"core\")\n}\n\nenum CoreBusinessStatus {\n IN_REVIEW\n REJECTED\n ACTIVE\n SUSPENDED\n DEACTIVATED\n\n @@schema(\"core\")\n}\n\nenum CoreUserStatus {\n NORMAL\n IN_REVIEW\n SUSPENDED\n DISABLED\n REVOKED\n\n @@schema(\"core\")\n}\n\nenum CoreSubscriptionType {\n BASIC\n STANDARD\n PREMIUM\n\n @@schema(\"core\")\n}\n\nenum CoreCity {\n BANGALORE\n MUMBAI\n DELHI\n CHENNAI\n HYDERABAD\n\n @@schema(\"core\")\n}\n\nenum CoreBusinessCategory {\n REAL_ESTATE\n\n @@schema(\"core\")\n}\n\nenum CoreSubscriptionRecurringPeriod {\n MONTHLY\n YEARLY\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreInviteStatus\n/// * Represents the status of a user invitation to a business.\nenum CoreInviteStatus {\n PENDING\n ACCEPTED\n EXPIRED\n REVOKED\n\n @@schema(\"core\")\n}\n",
1445
- "inlineSchemaHash": "af680c0f2a0aae4f8e8ae07e077d92e33f99e241120146b37a32c81daac8f670",
1453
+ "inlineSchema": "/// *\n/// * Flat\n/// * Represents a flat property.\nmodel Flat {\n id Int @id @default(autoincrement())\n businessId Int\n propertyCode String\n name String\n rent Int\n deposit Int\n areaId Int\n address String\n landmark String?\n googleMapsURL String?\n lat Float?\n lng Float?\n furnishType FlatFurnishType\n bhkType FlatBHKType\n propertyType FlatPropertyType @default(STAND_ALONE_APARTMENT)\n amenities FlatAmenity[]\n availableOn DateTime?\n priority FlatPriority?\n status RealEstatePropertyStatus @default(AVAILABLE)\n isPublic Boolean @default(false)\n thumbnailImage String?\n pmType FlatPmType?\n pmName String?\n pmContactNumber String?\n ownerName String?\n ownerNumber String?\n guideName String?\n guideNumber String?\n guideType FlatGuideType?\n teamGuideId Int?\n description String?\n bookingURL String?\n images String[]\n videos String[]\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now()) @updatedAt\n ageOfProperty Int?\n balconyCount Int?\n bathroomCount Int?\n carpetArea Float?\n coveredParking Int?\n facing FlatFacingDirection?\n flatNumber String?\n floorNumber Int?\n lockInPeriodInDays Int?\n maintenanceCharges Float?\n maintenanceChargesIncluded Boolean @default(false)\n openParking Int?\n paintingCharges String?\n parkingCharges String?\n petFriendly Boolean? @default(false)\n totalFloors Int?\n preferredTenantType FlatPreferredTenantType[]\n area RealEstateArea @relation(\"FlatToRealEstateArea\", fields: [areaId], references: [id], onDelete: Cascade)\n business RealEstateBusiness @relation(\"FlatToRealEstateBusiness\", fields: [businessId], references: [id], onDelete: Cascade)\n teamGuide RealEstateBusinessUser? @relation(\"TeamGuideToFlat\", fields: [teamGuideId], references: [id])\n variations FlatVariation[]\n realEstateLeadsOnFlats RealEstateLeadsOnFlats[] @relation(\"RealEstateLeadsOnFlatsToFlat\")\n realEstatePropertyAnalytics RealEstatePropertyAnalytics[] @relation(\"RealEstatePropertyAnalyticsToFlat\")\n realEstatePropertyViews RealEstatePropertyView[] @relation(\"RealEstatePropertyViewToFlat\")\n RealEstateProfileCustomView RealEstateProfileCustomView[] @relation(\"RealEstateProfileCustomViewFlats\")\n propertyEvents RealEstatePropertyEvent[] @relation(\"FlatToPropertyEvent\")\n ctaType FlatCtaType @default(SCHEDULE_VISIT)\n ctaPhoneNumber String?\n ctaWhatsappNumber String?\n ctaCustomLink String?\n ctaButtonTitle String?\n\n @@unique([businessId, propertyCode])\n @@index([businessId, areaId])\n @@schema(\"flat\")\n}\n\n/// *\n/// * FlatVariation\n/// * Represents variations of a flat property.\nmodel FlatVariation {\n id Int @id @default(autoincrement())\n flatId Int\n name String?\n description String?\n rent Int?\n deposit Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now()) @updatedAt\n flat Flat @relation(fields: [flatId], references: [id], onDelete: Cascade)\n\n @@schema(\"flat\")\n}\n\nenum FlatBHKType {\n ONE_RK\n ONE_BHK\n TWO_BHK\n THREE_BHK\n FOUR_BHK\n ONE_RB\n\n @@schema(\"flat\")\n}\n\nenum FlatFurnishType {\n UNFURNISHED\n SEMI_FURNISHED\n FULLY_FURNISHED\n\n @@schema(\"flat\")\n}\n\nenum FlatPriority {\n HIGH\n LOW\n CRITICAL\n MEDIUM\n\n @@schema(\"flat\")\n}\n\nenum FlatPreferredTenantType {\n ANYONE\n FAMILY\n BACHELOR\n STUDENT\n WORKING\n COUPLE\n\n @@schema(\"flat\")\n}\n\nenum FlatPropertyType {\n STAND_ALONE_APARTMENT\n INDIVIDUAL_HOUSE\n GATED_SOCIETY\n SHARED_APARTMENT\n CONDO\n STUDIO_APARTMENT\n\n @@schema(\"flat\")\n}\n\nenum FlatAmenity {\n TWO_WHEELER_PARKING\n FOUR_WHEELER_PARKING\n AIR_CONDITIONER\n BALCONY\n CLOSET\n COFFEE_TABLE\n COMMON_WASHING_MACHINE\n DINING_TABLE\n FRIDGE\n KITCHEN_APPLIANCES\n KING_SIZED_BED\n POWER_BACKUP\n LIFT\n RO_WATER_AQUA_GUARD\n QUEEN_SIZED_BED\n SECURITY\n SOFA\n SINGLE_BED\n TV\n WASHING_MACHINE\n TWIN_SIZED_BED\n WATER_HEATER\n UTILITY_AREA\n STUDY_TABLE\n WIFI\n GYM\n CCTV_SECURITY\n PET_FRIENDLY\n\n @@schema(\"flat\")\n}\n\nenum FlatPmType {\n OWNER\n CARETAKER\n BROKER\n AGENCY\n BUSINESS\n OTHER\n\n @@schema(\"flat\")\n}\n\nenum FlatGuideType {\n OWNER\n CARETAKER\n BROKER\n AGENCY\n BUSINESS\n OTHER\n\n @@schema(\"flat\")\n}\n\nenum FlatFacingDirection {\n NORTH\n EAST\n WEST\n SOUTH\n\n @@schema(\"flat\")\n}\n\nenum FlatCtaType {\n CALL\n SCHEDULE_VISIT\n CUSTOM_LINK\n WHATSAPP\n\n @@schema(\"flat\")\n}\n\n/// *\n/// * OwnerBusiness\n/// * Represents the association between a business and its owner.\nmodel OwnerBusiness {\n id Int @id @default(autoincrement())\n businessId Int @unique\n ownerUserId Int\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n ownerUser CoreUser @relation(\"OwnerBusinessOwner\", fields: [ownerUserId], references: [id], onDelete: Cascade)\n\n @@schema(\"owner\")\n}\n\n/// *\n/// * PgProperty\n/// * Represents a PG property.\nmodel PgProperty {\n id Int @id @default(autoincrement())\n businessId Int\n propertyCode String\n name String\n status RealEstatePropertyStatus @default(AVAILABLE)\n areaId Int\n address String\n landmark String?\n exactLocation String?\n googleMapsURL String?\n lat Float?\n lng Float?\n pgPreferredTenantType PgPreferredTenant\n professionPreference String?\n lockInPeriod PgLockInPeriod?\n noticePeriod PgNoticePeriod?\n pgRules PgRules[]\n foodProvided PgFoodProvided[]\n vegOrNonVeg PgFoodType\n foodPricing String?\n foodMenu String?\n otherServices PgOtherService[]\n commonAreaAmenities PgAmenity[]\n roomAmenities PgAmenity[]\n additionalAmenities String?\n isPublic Boolean @default(false)\n ownerName String?\n ownerNumber String?\n guideName String?\n guideNumber String?\n teamGuideId Int?\n description String?\n bookingURL String?\n images String[]\n videos String?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n area RealEstateArea @relation(\"PgPropertyToRealEstateArea\", fields: [areaId], references: [id], onDelete: Cascade)\n business RealEstateBusiness @relation(\"PgPropertyToRealEstateBusiness\", fields: [businessId], references: [id], onDelete: Cascade)\n teamGuide RealEstateBusinessUser? @relation(\"TeamGuideToPgProperty\", fields: [teamGuideId], references: [id])\n pgSharingOptions PgSharingOption[] @relation(\"PgSharingOptionToPgProperty\")\n variations PgVariation[]\n realEstateLeadsOnPgs RealEstateLeadsOnPgs[] @relation(\"RealEstateLeadsOnPgsToPgProperty\")\n realEstatePropertyAnalytics RealEstatePropertyAnalytics[] @relation(\"RealEstatePropertyAnalyticsToPgProperty\")\n realEstatePropertyViews RealEstatePropertyView[] @relation(\"RealEstatePropertyViewToPgProperty\")\n RealEstateProfileCustomView RealEstateProfileCustomView[] @relation(\"RealEstateProfileCustomViewPgs\")\n\n @@unique([businessId, propertyCode])\n @@index([businessId, areaId])\n @@schema(\"pg\")\n}\n\n/// *\n/// * PgVariation\n/// * Represents variations of a PG property.\nmodel PgVariation {\n id Int @id @default(autoincrement())\n pgId Int\n name String?\n description String?\n rent Int?\n deposit Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n pg PgProperty @relation(fields: [pgId], references: [id], onDelete: Cascade)\n\n @@schema(\"pg\")\n}\n\n/// *\n/// * PgSharingOption\n/// * Represents sharing options for a PG property.\nmodel PgSharingOption {\n id Int @id @default(autoincrement())\n pgId Int\n sharingType PgSharingType\n rent Int\n deposit Int\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n pg PgProperty @relation(\"PgSharingOptionToPgProperty\", fields: [pgId], references: [id], onDelete: Cascade)\n\n @@schema(\"pg\")\n}\n\nenum PgPreferredTenant {\n MALE\n FEMALE\n ANYONE\n\n @@schema(\"pg\")\n}\n\nenum PgAmenity {\n FOUR_WHEELER_PARKING\n TWO_WHEELER_PARKING\n AIR_CONDITIONER\n BALCONY\n CLOSET\n COFFEE_TABLE\n COMMON_WASHING_MACHINE\n DINING_TABLE\n FRIDGE\n KITCHEN_APPLIANCES\n KING_SIZED_BED\n POWER_BACKUP\n LIFT\n RO_WATER_AQUA_GUARD\n QUEEN_SIZED_BED\n SECURITY\n SOFA\n SINGLE_BED\n TV\n WASHING_MACHINE\n TWIN_SIZED_BED\n WATER_HEATER\n UTILITY_AREA\n STUDY_TABLE\n WIFI\n GYM\n CCTV_SECURITY\n PET_FRIENDLY\n\n @@schema(\"pg\")\n}\n\nenum PgSharingType {\n SINGLE_SHARING\n DOUBLE_SHARING\n TRIPLE_SHARING\n FOUR_SHARING\n\n @@schema(\"pg\")\n}\n\nenum PgLockInPeriod {\n ONE_MONTH\n TWO_MONTHS\n THREE_MONTHS\n FOUR_MONTHS\n FIVE_MONTHS\n SIX_MONTHS\n ONE_YEAR\n\n @@schema(\"pg\")\n}\n\nenum PgNoticePeriod {\n DAYS_15\n DAYS_30\n DAYS_60\n\n @@schema(\"pg\")\n}\n\nenum PgRules {\n NO_SMOKING\n NO_ALCOHOL\n NO_MALE_ENTRY\n GATE_CLOSES_AT_NIGHT\n NO_FEMALE_ENTRY\n NO_GUARDIANS_ALLOWED\n NO_RULES\n VEG_ONLY\n NO_VISITORS_OPPOSITE_GENDER\n CURFEW_TIME\n\n @@schema(\"pg\")\n}\n\nenum PgFoodProvided {\n NO_FOOD_PROVIDED\n BREAKFAST\n LUNCH\n DINNER\n EVENING_SNACKS\n\n @@schema(\"pg\")\n}\n\nenum PgFoodType {\n VEG\n NON_VEG\n BOTH\n\n @@schema(\"pg\")\n}\n\nenum PgOtherService {\n LAUNDRY\n WARDEN_FACILITY\n ROOM_CLEANING\n NONE\n\n @@schema(\"pg\")\n}\n\n/// *\n/// * RealEstateQuery\n/// * Now links directly to a business-specific lead.\nmodel RealEstateQuery {\n id Int @id @default(autoincrement())\n queryType String\n queryDesc String\n status RealEstateQueryStatus @default(NEW)\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n coreUserId Int\n realEstateBizId Int\n realEstateLeadId Int\n propertyCode String?\n coreUser CoreUser @relation(fields: [coreUserId], references: [id], onDelete: Cascade)\n realEstateBiz RealEstateBusiness @relation(fields: [realEstateBizId], references: [id], onDelete: Cascade)\n realEstateLead RealEstateLead @relation(\"RealEstateQueryToRealEstateLead\", fields: [realEstateLeadId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateNote\nmodel RealEstateNote {\n id Int @id @default(autoincrement())\n noteType RealEstateNoteType\n noteContent String\n realEstateBusinessId Int\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n realEstateBusiness RealEstateBusiness @relation(\"BusinessToRealEstateNotes\", fields: [realEstateBusinessId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateFavorite\nmodel RealEstateFavorite {\n id Int @id @default(autoincrement())\n coreFavoriteId Int @unique\n favoriteFlats Int[]\n favoritePgs Int[]\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n coreFavorite CoreFavorite @relation(fields: [coreFavoriteId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateCoreLead\n/// * Represents a core lead with only shared profile details.\nmodel RealEstateCoreLead {\n id Int @id @default(autoincrement())\n coreUserId Int? @unique\n name String?\n phoneNumber String? @unique\n email String? @unique\n gender CoreGender?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n coreUser CoreUser? @relation(\"RealEstateCoreLeadToCoreUser\", fields: [coreUserId], references: [id])\n flatCoreRequirements RealEstateFlatCoreLead?\n realEstateLeads RealEstateLead[]\n pgCoreRequirements RealEstatePGCoreLead?\n areas CoreArea[] @relation(\"CoreLeadAreas\")\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateFlatCoreLead\n/// * Optional, 1:1 extension of RealEstateCoreLead for flat-specific requirements.\nmodel RealEstateFlatCoreLead {\n id Int @id @default(autoincrement())\n realEstateCoreLeadId Int @unique\n moveInDate DateTime?\n budgetStart Int?\n budgetEnd Int?\n note String?\n bhkType FlatBHKType[]\n furnishings FlatFurnishType[]\n amenities FlatAmenity[]\n propertyTypes FlatPropertyType[] @default([])\n facingDirections FlatFacingDirection[] @default([])\n leadTenantType FlatPreferredTenantType[] @default([])\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n realEstateCoreLead RealEstateCoreLead @relation(fields: [realEstateCoreLeadId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstatePGCoreLead\n/// * Optional, 1:1 extension of RealEstateCoreLead for PG-specific requirements.\nmodel RealEstatePGCoreLead {\n id Int @id @default(autoincrement())\n realEstateCoreLeadId Int @unique\n sharingType PgSharingType?\n pgAmenities PgAmenity[]\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n realEstateCoreLead RealEstateCoreLead @relation(fields: [realEstateCoreLeadId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateBusiness\n/// * Represents a real estate business entity.\nmodel RealEstateBusiness {\n id Int @id @default(autoincrement())\n businessId Int @unique\n category RealEstateCategory\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n flatProperty Flat[] @relation(\"FlatToRealEstateBusiness\")\n pgProperty PgProperty[] @relation(\"PgPropertyToRealEstateBusiness\")\n business CoreBusiness @relation(\"CoreBusinessToRealEstateBusiness\", fields: [businessId], references: [id], onDelete: Cascade)\n businessAnalytics RealEstateBusinessAnalytics? @relation(\"RealEstateBusinessAnalyticsToRealEstateBusiness\")\n leads RealEstateLead[]\n notes RealEstateNote[] @relation(\"BusinessToRealEstateNotes\")\n RealEstateProfileCustomView RealEstateProfileCustomView[]\n propertyAnalytics RealEstatePropertyAnalytics[] @relation(\"RealEstatePropertyAnalyticsToRealEstateBusiness\")\n propertyViews RealEstatePropertyView[] @relation(\"RealEstatePropertyViewToRealEstateBusiness\")\n realEstateQueries RealEstateQuery[]\n visits RealEstateVisit[]\n areas RealEstateArea[] @relation(\"RealEstateAreaToBusiness\")\n customCtaEnabled Boolean @default(false)\n propertyEvents RealEstatePropertyEvent[] @relation(\"BusinessToPropertyEvent\")\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateBusinessUser\n/// * Represents a user within a real estate business.\nmodel RealEstateBusinessUser {\n id Int @id @default(autoincrement())\n coreBusinessUserId Int @unique\n rePermissions RealEstatePermission[] @default([])\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n guidingFlats Flat[] @relation(\"TeamGuideToFlat\")\n guidingPgProperties PgProperty[] @relation(\"TeamGuideToPgProperty\")\n coreBusinessUser CoreBusinessUser @relation(\"RealEstateBusinessUserToCoreBusinessUser\", fields: [coreBusinessUserId], references: [id], onDelete: Cascade)\n assignedLeads RealEstateLead[] @relation(\"RealEstateLeadToRealEstateBusinessUser\")\n realEstateLeadConversions RealEstateLeadConversion[] @relation(\"ConversionToBusinessUser\")\n propertyViews RealEstatePropertyView[] @relation(\"RealEstatePropertyViewToRealEstateBusinessUser\")\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateArea\n/// * Extends CoreArea with real estate–specific fields.\nmodel RealEstateArea {\n id Int @id @default(autoincrement())\n coreAreaId Int @unique\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n flats Flat[] @relation(\"FlatToRealEstateArea\")\n pgProperties PgProperty[] @relation(\"PgPropertyToRealEstateArea\")\n coreArea CoreArea @relation(\"CoreAreaToRealEstateArea\", fields: [coreAreaId], references: [id], onDelete: Cascade)\n propertyViews RealEstatePropertyView[]\n realEstateBusinesses RealEstateBusiness[] @relation(\"RealEstateAreaToBusiness\")\n realEstateLeads RealEstateLead[] @relation(\"RealEstateLeadAreas\")\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateLead\n/// * Represents a business-specific lead.\nmodel RealEstateLead {\n id Int @id @default(autoincrement())\n name String\n phoneNumber String?\n email String?\n countryCode CoreAllowedCountryCode @default(IN)\n gender CoreGender?\n status RealEstateLeadStatus\n leadType RealEstateLeadType?\n preferredCallTime RealEstatePreferredCallTime?\n moveInDate DateTime?\n budgetStart Int?\n budgetEnd Int?\n notes String?\n realEstateCoreLeadId Int\n realEstateBizId Int\n assignedToId Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n flatLead RealEstateFlatLead?\n pgLead RealEstatePGLead?\n assignedTo RealEstateBusinessUser? @relation(\"RealEstateLeadToRealEstateBusinessUser\", fields: [assignedToId], references: [id])\n realEstateBiz RealEstateBusiness @relation(fields: [realEstateBizId], references: [id], onDelete: Cascade)\n realEstateCoreLead RealEstateCoreLead @relation(fields: [realEstateCoreLeadId], references: [id], onDelete: Cascade)\n leadConversions RealEstateLeadConversion[] @relation(\"RealEstateLeadConversionToRealEstateLead\")\n realEstateLeadsOnFlats RealEstateLeadsOnFlats[] @relation(\"RealEstateLeadsOnFlatsToRealEstateLead\")\n realEstateLeadsOnPgs RealEstateLeadsOnPgs[] @relation(\"RealEstateLeadsOnPgsToRealEstateLead\")\n queries RealEstateQuery[] @relation(\"RealEstateQueryToRealEstateLead\")\n visits RealEstateVisit[] @relation(\"RealEstateVisitToRealEstateLead\")\n areas RealEstateArea[] @relation(\"RealEstateLeadAreas\")\n leadSources RealEstateLeadSource[] @default([])\n\n @@unique([realEstateBizId, phoneNumber])\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateVisit\n/// * Represents a visit associated with a real estate lead.\nmodel RealEstateVisit {\n id Int @id @default(autoincrement())\n leadId Int\n realEstateBizId Int\n propertyCode String\n visitType RealEstateCategory?\n scheduledAt DateTime\n status RealEstateVisitStatus @default(SCHEDULED)\n notes String?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n propertyViews RealEstatePropertyView[] @relation(\"RealEstatePropertyViewToRealEstateVisit\")\n lead RealEstateLead @relation(\"RealEstateVisitToRealEstateLead\", fields: [leadId], references: [id], onDelete: Cascade)\n realEstateBusiness RealEstateBusiness @relation(fields: [realEstateBizId], references: [id], onDelete: Cascade)\n visitAnalytics RealEstateVisitAnalytics[] @relation(\"RealEstateVisitAnalyticsToRealEstateVisit\")\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateVisitAnalytics\n/// * Represents analytics data for a real estate visit.\nmodel RealEstateVisitAnalytics {\n id Int @id @default(autoincrement())\n visitId Int\n duration Int\n feedback String?\n rated Boolean @default(false)\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n visit RealEstateVisit @relation(\"RealEstateVisitAnalyticsToRealEstateVisit\", fields: [visitId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateLeadConversion\n/// * Represents the conversion of a lead.\nmodel RealEstateLeadConversion {\n id Int @id @default(autoincrement())\n leadId Int\n convertedAt DateTime @default(now())\n convertedById Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n convertedBy RealEstateBusinessUser? @relation(\"ConversionToBusinessUser\", fields: [convertedById], references: [id])\n lead RealEstateLead @relation(\"RealEstateLeadConversionToRealEstateLead\", fields: [leadId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstatePropertyView\n/// * Represents a view of a property in real estate.\nmodel RealEstatePropertyView {\n id Int @id @default(autoincrement())\n propertyType RealEstatePropertyType\n viewedAt DateTime @default(now())\n realEstateBizUserId Int?\n realEstateBizId Int\n areaId Int?\n visitId Int?\n flatId Int?\n pgId Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n area RealEstateArea? @relation(fields: [areaId], references: [id])\n flat Flat? @relation(\"RealEstatePropertyViewToFlat\", fields: [flatId], references: [id])\n pg PgProperty? @relation(\"RealEstatePropertyViewToPgProperty\", fields: [pgId], references: [id])\n realEstateBusiness RealEstateBusiness @relation(\"RealEstatePropertyViewToRealEstateBusiness\", fields: [realEstateBizId], references: [id], onDelete: Cascade)\n realEstateBusinessUser RealEstateBusinessUser? @relation(\"RealEstatePropertyViewToRealEstateBusinessUser\", fields: [realEstateBizUserId], references: [id])\n visit RealEstateVisit? @relation(\"RealEstatePropertyViewToRealEstateVisit\", fields: [visitId], references: [id])\n\n @@index([realEstateBizId, propertyType, viewedAt])\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateBusinessAnalytics\n/// * Represents analytics data for a real estate business.\nmodel RealEstateBusinessAnalytics {\n id Int @id @default(autoincrement())\n businessId Int @unique\n totalLeads Int @default(0)\n totalVisits Int @default(0)\n totalPropertyViews Int @default(0)\n monthlyLeads Int @default(0)\n monthlyVisits Int @default(0)\n monthlyPropertyViews Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n realEstateBusiness RealEstateBusiness @relation(\"RealEstateBusinessAnalyticsToRealEstateBusiness\", fields: [businessId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstatePropertyAnalytics\n/// * Represents analytics data for a specific property.\nmodel RealEstatePropertyAnalytics {\n id Int @id @default(autoincrement())\n propertyType RealEstatePropertyType\n realEstateBizId Int\n totalViews Int @default(0)\n uniqueViews Int @default(0)\n averageViewDuration Float @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n flatId Int?\n pgId Int?\n flat Flat? @relation(\"RealEstatePropertyAnalyticsToFlat\", fields: [flatId], references: [id])\n pg PgProperty? @relation(\"RealEstatePropertyAnalyticsToPgProperty\", fields: [pgId], references: [id])\n realEstateBusiness RealEstateBusiness @relation(\"RealEstatePropertyAnalyticsToRealEstateBusiness\", fields: [realEstateBizId], references: [id], onDelete: Cascade)\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateLeadsOnFlats\n/// * Join table for M:N relationship between RealEstateLead and Flat.\nmodel RealEstateLeadsOnFlats {\n leadId Int\n flatId Int\n flat Flat @relation(\"RealEstateLeadsOnFlatsToFlat\", fields: [flatId], references: [id], onDelete: Cascade)\n lead RealEstateLead @relation(\"RealEstateLeadsOnFlatsToRealEstateLead\", fields: [leadId], references: [id], onDelete: Cascade)\n\n @@id([leadId, flatId])\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateLeadsOnPgs\n/// * Join table for M:N relationship between RealEstateLead and PgProperty.\nmodel RealEstateLeadsOnPgs {\n leadId Int\n pgId Int\n lead RealEstateLead @relation(\"RealEstateLeadsOnPgsToRealEstateLead\", fields: [leadId], references: [id], onDelete: Cascade)\n pg PgProperty @relation(\"RealEstateLeadsOnPgsToPgProperty\", fields: [pgId], references: [id], onDelete: Cascade)\n\n @@id([leadId, pgId])\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstateFlatLead\n/// * Represents a flat-specific lead extension.\nmodel RealEstateFlatLead {\n id Int @id @default(autoincrement())\n realEstateLeadId Int @unique\n amenities FlatAmenity[]\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n bhkType FlatBHKType[]\n furnishings FlatFurnishType[]\n realEstateLead RealEstateLead @relation(fields: [realEstateLeadId], references: [id], onDelete: Cascade)\n area CoreArea[] @relation(\"CoreAreaToRealEstateFlatLead\")\n\n @@map(\"FlatLead\")\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstatePGLead\n/// * Represents a PG-specific lead extension.\nmodel RealEstatePGLead {\n id Int @id @default(autoincrement())\n realEstateLeadId Int @unique\n sharingType PgSharingType?\n pgAmenities PgAmenity[]\n budget Int?\n areaId Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n area CoreArea? @relation(\"CoreAreaToRealEstatePgLead\", fields: [areaId], references: [id])\n realEstateLead RealEstateLead @relation(fields: [realEstateLeadId], references: [id], onDelete: Cascade)\n\n @@map(\"PGLead\")\n @@schema(\"real_estate\")\n}\n\nmodel RealEstateProfileCustomView {\n id Int @id @default(autoincrement())\n title String\n description String?\n businessId Int\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n business RealEstateBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n flats Flat[] @relation(\"RealEstateProfileCustomViewFlats\")\n pgs PgProperty[] @relation(\"RealEstateProfileCustomViewPgs\")\n\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * RealEstatePropertyEvent\n/// * A log of every click/share/CTA action on a flat.\nmodel RealEstatePropertyEvent {\n id Int @id @default(autoincrement())\n flatId Int?\n realEstateBizId Int\n eventType PropertyEventType\n createdAt DateTime @default(now())\n\n /// Relations\n flat Flat? @relation(\"FlatToPropertyEvent\", fields: [flatId], references: [id], onDelete: Cascade)\n realEstateBusiness RealEstateBusiness @relation(\"BusinessToPropertyEvent\", fields: [realEstateBizId], references: [id], onDelete: Cascade)\n\n @@index([flatId])\n @@index([realEstateBizId])\n @@schema(\"real_estate\")\n}\n\n/// *\n/// * PropertyEventType\n/// * All the different click/share event types we want to track.\nenum PropertyEventType {\n SHARE_CLICK\n VISIT_CLICK\n QUERY_CLICK\n CTA_CALL\n CTA_WHATSAPP\n CTA_CUSTOM_LINK\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstatePermission {\n VIEW_VISITS\n EDIT_VISITS\n CREATE_VISITS\n DELETE_VISITS\n ASSIGN_VISITS\n VIEW_PROPERTIES\n EDIT_PROPERTIES\n DELETE_PROPERTIES\n UPLOAD_PROPERTIES\n VIEW_PROPERTY_FLAT_OWNER_DETAILS\n VIEW_PROPERTY_FLAT_LOCATION\n VIEW_LEADS_FLAT_CONTACT_INFO\n MANAGE_PROPERTY_FLAT_OWNER_DETAILS\n MANAGE_PROPERTY_FLAT_LOCATION\n MANAGE_LEADS_FLAT_CONTACT_INFO\n VIEW_QUERIES\n EDIT_QUERIES\n DELETE_QUERIES\n CREATE_QUERIES\n MANAGE_QUERIES\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstatePreferredCallTime {\n MORNING\n AFTERNOON\n NIGHT\n EVENING\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstatePropertyStatus {\n AVAILABLE\n NOT_AVAILABLE\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstateCategory {\n FLAT\n PG\n OWNER\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstateLeadStatus {\n NEW\n IN_CONTACT\n BOOKED\n VISITED\n CLOSED\n LOST\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstateLeadType {\n FLAT\n SALE\n OTHER\n PG\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstateVisitStatus {\n SCHEDULED\n COMPLETED\n CANCELLED\n RESCHEDULED\n NO_SHOW\n RE_VISIT\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstatePropertyType {\n FLAT\n PG\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstateNoteType {\n RED_NOTE\n BLUE_NOTE\n GREEN_NOTE\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstateQueryStatus {\n NEW\n IN_PROGRESS\n RESOLVED\n REJECTED\n CLOSED\n\n @@schema(\"real_estate\")\n}\n\nenum RealEstateLeadSource {\n MANUALLY_ADDED\n STAYIN_SENT\n QUERY_RAISED\n VISIT_REQUESTED\n PROPERTY_ENQUIRY\n\n @@schema(\"real_estate\")\n}\n\ngenerator client {\n provider = \"prisma-client-js\"\n previewFeatures = [\"driverAdapters\", \"fullTextSearchPostgres\", \"multiSchema\"]\n\n binaryTargets = [\"native\", \"debian-openssl-3.0.x\", \"rhel-openssl-3.0.x\", \"darwin-arm64\"]\n output = \"../../client\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n schemas = [\"core\", \"flat\", \"owner\", \"pg\", \"real_estate\"]\n}\n\n/// *\n/// * CoreUser\n/// * Represents a user in the system.\nmodel CoreUser {\n id Int @id @default(autoincrement())\n email String? @unique\n username String? @unique\n hash String?\n firstName String\n lastName String?\n isHiddenProfile Boolean @default(false)\n countryCode CoreAllowedCountryCode @default(IN)\n phoneNumber String? @unique\n googleId String? @unique\n isActive Boolean @default(true)\n gender CoreGender?\n dateOfBirth DateTime?\n profilePicture String?\n resetToken String?\n resetTokenExpiry DateTime?\n authProvider CoreAuthenticationProvider @default(EMAIL)\n instagramUrl String?\n twitterUrl String?\n youtubeUrl String?\n facebookUrl String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n passwordCreated Boolean @default(false)\n suspendedUntil DateTime?\n status CoreUserStatus @default(NORMAL)\n authoredLogs CoreBusinessLog[]\n authoredUpdates CoreBusinessUpdate[]\n businessUsers CoreBusinessUser[]\n uploadedDocs CoreDocument[] @relation(\"DocumentUser\")\n favorite CoreFavorite?\n invitesSent CoreInvite[] @relation(\"UserInvites\")\n posts CorePost[]\n refreshTokens CoreRefreshToken[]\n searchHistories CoreSearchHistory[]\n ownerBusinesses OwnerBusiness[] @relation(\"OwnerBusinessOwner\")\n realEstateCoreAsLeads RealEstateCoreLead? @relation(\"RealEstateCoreLeadToCoreUser\")\n realEstateQueries RealEstateQuery[]\n businessReviews CoreBusinessReview[]\n businessFlags CoreBusinessFlag[]\n flagsReceived CoreUserFlag[] @relation(\"UserFlagsReceived\")\n flagsGiven CoreUserFlag[] @relation(\"UserFlagsGiven\")\n statusHistory CoreUserStatusHistory[]\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreFavorite\n/// * Represents a user's favorite businesses.\nmodel CoreFavorite {\n id Int @id @default(autoincrement())\n userId Int @unique\n favoriteBusinesses Int[]\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n user CoreUser @relation(fields: [userId], references: [id], onDelete: Cascade)\n realEstateFavorite RealEstateFavorite?\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreBusiness\n/// * Represents a business entity.\nmodel CoreBusiness {\n id Int @id @default(autoincrement())\n businessName String\n username String? @unique\n isHiddenProfile Boolean @default(false)\n businessEmail String? @unique\n instagramHandle String?\n bio String?\n logoUrl String?\n manyChatId String?\n businessAddress String?\n businessContactNumber String?\n businessContactNumberCountryCode CoreAllowedCountryCode @default(IN)\n businessWebsite String?\n city CoreCity\n businessCategory CoreBusinessCategory\n instagramUrl String?\n twitterUrl String?\n youtubeUrl String?\n facebookUrl String?\n customLinks Json?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n deletedAt DateTime?\n isActive Boolean @default(true)\n status CoreBusinessStatus @default(IN_REVIEW)\n isVerified Boolean @default(false)\n businessLogs CoreBusinessLog[]\n businessUpdates CoreBusinessUpdate[]\n businessUsers CoreBusinessUser[]\n documents CoreDocument[]\n instagramAccount CoreInstagramAccount?\n invites CoreInvite[]\n posts CorePost[]\n subscriptions CoreSubscription[]\n realEstateBusiness RealEstateBusiness? @relation(\"CoreBusinessToRealEstateBusiness\")\n areas CoreArea[] @relation(\"CoreBusinessToCoreArea\")\n reviews CoreBusinessReview[]\n flags CoreBusinessFlag[]\n adminNotes CoreBusinessAdminNote[]\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreBusinessUser\n/// * Represents the association between users and businesses.\nmodel CoreBusinessUser {\n id Int @id @default(autoincrement())\n userId Int\n businessId Int\n roleInBusiness CoreOrganizationRole @default(STAFF)\n permissions CorePermission[] @default([])\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n user CoreUser @relation(fields: [userId], references: [id], onDelete: Cascade)\n realEstateBusinessUser RealEstateBusinessUser? @relation(\"RealEstateBusinessUserToCoreBusinessUser\")\n\n @@unique([userId, businessId])\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreInvite\n/// * Represents an invitation to join a business.\nmodel CoreInvite {\n id Int @id @default(autoincrement())\n businessId Int\n inviterId Int\n inviteeEmail String\n token String @unique\n expiresAt DateTime\n roleInBusiness CoreOrganizationRole\n permissions CorePermission[] @default([])\n businessPermissions Json?\n createdAt DateTime @default(now())\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n inviter CoreUser @relation(\"UserInvites\", fields: [inviterId], references: [id], onDelete: Cascade)\n status CoreInviteStatus @default(PENDING)\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreRefreshToken\n/// * Represents a user's refresh token for authentication.\nmodel CoreRefreshToken {\n deviceId String @id\n deviceName String\n token String\n expiresAt DateTime\n userId Int\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n user CoreUser @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreSubscription\n/// * Represents a business subscription.\nmodel CoreSubscription {\n id Int @id @default(autoincrement())\n businessId Int\n amount Int @default(0)\n type CoreSubscriptionType @default(BASIC)\n startDate DateTime @default(now())\n endDate DateTime?\n isActive Boolean @default(true)\n recurringPeriod CoreSubscriptionRecurringPeriod @default(MONTHLY)\n payments CorePayment[] @relation(\"SubscriptionInvoices\")\n\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CorePayment\n/// * Represents a payment made by a business.\nmodel CorePayment {\n id Int @id @default(autoincrement())\n subscriptionId Int\n invoiceNumber String @unique\n invoiceDate DateTime @default(now())\n amount Int\n currency CorePaymentCurrency @default(INR)\n taxAmount Int? @default(0)\n discountAmount Int? @default(0)\n totalAmount Int @default(0)\n pdfUrl String?\n status CorePaymentStatus @default(PENDING)\n createdAt DateTime @default(now())\n subscription CoreSubscription @relation(\"SubscriptionInvoices\", fields: [subscriptionId], references: [id], onDelete: Cascade)\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreSearchHistory\n/// * Represents a user's search history.\nmodel CoreSearchHistory {\n id Int @id @default(autoincrement())\n userId Int\n query String\n searchedAt DateTime @default(now())\n user CoreUser @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId, searchedAt])\n @@schema(\"core\")\n}\n\n/// *\n/// * CorePost\n/// * Represents a post made by a user within a business.\nmodel CorePost {\n id Int @id @default(autoincrement())\n businessId Int\n instagramPostId String?\n caption String?\n imageUrl String?\n createdAt DateTime @default(now())\n userId Int?\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n user CoreUser? @relation(fields: [userId], references: [id])\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreInstagramAccount\n/// * Represents a business's Instagram account.\nmodel CoreInstagramAccount {\n id Int @id @default(autoincrement())\n businessId Int @unique\n instagramUserId String?\n accessToken String?\n connectedAt DateTime? @default(now())\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreDocument\n/// * Represents documents uploaded by users or businesses.\nmodel CoreDocument {\n id Int @id @default(autoincrement())\n businessId Int\n userId Int?\n entityType String\n entityId Int?\n docUrl String\n docName String?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n user CoreUser? @relation(\"DocumentUser\", fields: [userId], references: [id])\n\n @@index([businessId, entityType, entityId])\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreBusinessLog\n/// * Represents logs related to business actions.\nmodel CoreBusinessLog {\n id BigInt @id @default(autoincrement())\n businessId Int\n userId Int?\n entityType String?\n entityId Int?\n action String\n oldData Json?\n newData Json?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n user CoreUser? @relation(fields: [userId], references: [id])\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreBusinessUpdate\n/// * Represents updates made to a business.\nmodel CoreBusinessUpdate {\n id Int @id @default(autoincrement())\n businessId Int\n userId Int?\n entityType String\n entityId Int\n content String\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n user CoreUser? @relation(fields: [userId], references: [id])\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreArea\n/// * This model serves as the GLOBAL concept of an area.\nmodel CoreArea {\n id Int @id @default(autoincrement())\n name String\n city CoreCity\n lat Float?\n lng Float?\n createdAt DateTime @default(now())\n updatedAt DateTime @default(now())\n realEstatePgLeads RealEstatePGLead[] @relation(\"CoreAreaToRealEstatePgLead\")\n realEstateAreas RealEstateArea? @relation(\"CoreAreaToRealEstateArea\")\n realEstateFlatLeads RealEstateFlatLead[] @relation(\"CoreAreaToRealEstateFlatLead\")\n businesses CoreBusiness[] @relation(\"CoreBusinessToCoreArea\")\n realEstateCoreLeads RealEstateCoreLead[] @relation(\"CoreLeadAreas\")\n\n @@schema(\"core\")\n}\n\nmodel CoreBusinessReview {\n id Int @id @default(autoincrement())\n businessId Int\n userId Int?\n rating Int @default(0)\n comment String\n isDeleted Boolean @default(false)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n user CoreUser? @relation(fields: [userId], references: [id], onDelete: SetNull)\n\n @@unique([businessId, userId])\n @@index([businessId])\n @@schema(\"core\")\n}\n\nmodel CoreBusinessFlag {\n id Int @id @default(autoincrement())\n businessId Int\n userId Int\n reason String?\n isDeleted Boolean @default(false)\n createdAt DateTime @default(now())\n\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n user CoreUser @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([businessId, userId])\n @@index([businessId])\n @@schema(\"core\")\n}\n\nmodel CoreUserFlag {\n id Int @id @default(autoincrement())\n reportedUserId Int\n reportedById Int\n reason String?\n isDeleted Boolean @default(false)\n createdAt DateTime @default(now())\n\n reportedUser CoreUser @relation(\"UserFlagsReceived\", fields: [reportedUserId], references: [id], onDelete: Cascade)\n reportedBy CoreUser @relation(\"UserFlagsGiven\", fields: [reportedById], references: [id], onDelete: Cascade)\n\n @@unique([reportedUserId, reportedById])\n @@index([reportedUserId])\n @@index([reportedById])\n @@schema(\"core\")\n}\n\nmodel CoreBusinessAdminNote {\n id Int @id @default(autoincrement())\n businessId Int\n adminUserId Int\n note String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n business CoreBusiness @relation(fields: [businessId], references: [id], onDelete: Cascade)\n\n @@index([businessId])\n @@schema(\"core\")\n}\n\nmodel CoreUserStatusHistory {\n id Int @id @default(autoincrement())\n userId Int\n oldStatus CoreUserStatus\n newStatus CoreUserStatus\n changedAt DateTime @default(now())\n changedById Int?\n reason String?\n\n user CoreUser @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@schema(\"core\")\n}\n\nenum CoreGender {\n MALE\n FEMALE\n OTHER\n\n @@schema(\"core\")\n}\n\nenum CoreAuthenticationProvider {\n GOOGLE\n EMAIL\n PHONE_WHATSAPP\n\n @@schema(\"core\")\n}\n\nenum CoreAllowedCountryCode {\n IN\n\n @@schema(\"core\")\n}\n\nenum CoreOrganizationRole {\n OWNER\n ADMIN\n STAFF\n\n @@schema(\"core\")\n}\n\nenum CorePermission {\n VIEW_LOGS\n EDIT_LOGS\n DELETE_LOGS\n UNDO_CHANGES\n MANAGE_FINANCE\n VIEW_FINANCE\n CREATE_LEADS\n VIEW_LEADS\n EDIT_LEADS\n DELETE_LEADS\n MANAGE_BUSINESS\n CREATE_USERS\n EDIT_USERS\n VIEW_USERS\n DELETE_USERS\n ALL_PERMISSIONS\n\n @@schema(\"core\")\n}\n\nenum CorePaymentStatus {\n PENDING\n COMPLETED\n FAILED\n\n @@schema(\"core\")\n}\n\nenum CorePaymentCurrency {\n INR\n\n @@schema(\"core\")\n}\n\nenum CoreBusinessStatus {\n IN_REVIEW\n REJECTED\n ACTIVE\n SUSPENDED\n DEACTIVATED\n\n @@schema(\"core\")\n}\n\nenum CoreUserStatus {\n NORMAL\n IN_REVIEW\n SUSPENDED\n DISABLED\n REVOKED\n\n @@schema(\"core\")\n}\n\nenum CoreSubscriptionType {\n BASIC\n STANDARD\n PREMIUM\n\n @@schema(\"core\")\n}\n\nenum CoreCity {\n BANGALORE\n MUMBAI\n DELHI\n CHENNAI\n HYDERABAD\n\n @@schema(\"core\")\n}\n\nenum CoreBusinessCategory {\n REAL_ESTATE\n\n @@schema(\"core\")\n}\n\nenum CoreSubscriptionRecurringPeriod {\n MONTHLY\n YEARLY\n\n @@schema(\"core\")\n}\n\n/// *\n/// * CoreInviteStatus\n/// * Represents the status of a user invitation to a business.\nenum CoreInviteStatus {\n PENDING\n ACCEPTED\n EXPIRED\n REVOKED\n\n @@schema(\"core\")\n}\n",
1454
+ "inlineSchemaHash": "60e512a6f7c384aceec9eed21a21ed6220856b623d28f30bd8d12b7e5416ef62",
1446
1455
  "copyEngine": true
1447
1456
  }
1448
1457
  config.dirname = '/'
@@ -20,12 +20,12 @@ exports.Prisma = Prisma
20
20
  exports.$Enums = {}
21
21
 
22
22
  /**
23
- * Prisma Client JS version: 6.13.0
24
- * Query Engine version: 361e86d0ea4987e9f53a565309b3eed797a6bcbd
23
+ * Prisma Client JS version: 6.17.1
24
+ * Query Engine version: 272a37d34178c2894197e17273bf937f25acdeac
25
25
  */
26
26
  Prisma.prismaVersion = {
27
- client: "6.13.0",
28
- engine: "361e86d0ea4987e9f53a565309b3eed797a6bcbd"
27
+ client: "6.17.1",
28
+ engine: "272a37d34178c2894197e17273bf937f25acdeac"
29
29
  }
30
30
 
31
31
  Prisma.PrismaClientKnownRequestError = () => {
package/client/index.d.ts CHANGED
@@ -1101,13 +1101,6 @@ export class PrismaClient<
1101
1101
  */
1102
1102
  $disconnect(): $Utils.JsPromise<void>;
1103
1103
 
1104
- /**
1105
- * Add a middleware
1106
- * @deprecated since 4.16.0. For new code, prefer client extensions instead.
1107
- * @see https://pris.ly/d/extensions
1108
- */
1109
- $use(cb: Prisma.Middleware): void
1110
-
1111
1104
  /**
1112
1105
  * Executes a prepared raw query and returns the number of affected rows.
1113
1106
  * @example
@@ -1714,8 +1707,8 @@ export namespace Prisma {
1714
1707
  export import Exact = $Public.Exact
1715
1708
 
1716
1709
  /**
1717
- * Prisma Client JS version: 6.13.0
1718
- * Query Engine version: 361e86d0ea4987e9f53a565309b3eed797a6bcbd
1710
+ * Prisma Client JS version: 6.17.1
1711
+ * Query Engine version: 272a37d34178c2894197e17273bf937f25acdeac
1719
1712
  */
1720
1713
  export type PrismaVersion = {
1721
1714
  client: string
@@ -5920,25 +5913,6 @@ export namespace Prisma {
5920
5913
  | 'findRaw'
5921
5914
  | 'groupBy'
5922
5915
 
5923
- /**
5924
- * These options are being passed into the middleware as "params"
5925
- */
5926
- export type MiddlewareParams = {
5927
- model?: ModelName
5928
- action: PrismaAction
5929
- args: any
5930
- dataPath: string[]
5931
- runInTransaction: boolean
5932
- }
5933
-
5934
- /**
5935
- * The `T` type makes sure, that the `return proceed` is not forgotten in the middleware implementation
5936
- */
5937
- export type Middleware<T = any> = (
5938
- params: MiddlewareParams,
5939
- next: (params: MiddlewareParams) => $Utils.JsPromise<T>,
5940
- ) => $Utils.JsPromise<T>
5941
-
5942
5916
  // tested in getLogLevel.test.ts
5943
5917
  export function getLogLevel(log: Array<LogLevel | LogDefinition>): LogLevel | undefined;
5944
5918