fixed the energylevel relation with new logic

This commit is contained in:
2025-12-29 17:01:04 +05:30
parent e6d37e04f9
commit 80c552a3d5
2 changed files with 39 additions and 28 deletions

View File

@@ -372,6 +372,8 @@ model ActivityTypes {
interestXid Int @map("interest_xid")
interests Interests @relation(fields: [interestXid], references: [id], onDelete: Restrict)
activityTypeName String @unique @map("activity_type_name") @db.VarChar(30)
energyLevelXid Int @map("energy_level_xid")
energyLevel EnergyLevels @relation(fields: [energyLevelXid], references: [id], onDelete: Restrict)
isActive Boolean @default(true) @map("is_active")
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
@@ -618,16 +620,17 @@ model Connections {
}
model EnergyLevels {
id Int @id @default(autoincrement())
energyLevelName String @map("energy_level_name") @db.VarChar(30)
energyIcon String @map("energy_icon") @db.VarChar(400)
energyColor String @map("energy_color") @db.VarChar(20)
isActive Boolean @default(true) @map("is_active")
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
deletedAt DateTime? @map("deleted_at")
id Int @id @default(autoincrement())
energyLevelName String @unique @map("energy_level_name") @db.VarChar(30)
energyIcon String @map("energy_icon") @db.VarChar(400)
energyColor String @map("energy_color") @db.VarChar(20)
displayOrder Int @map("display_order")
isActive Boolean @default(true) @map("is_active")
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
deletedAt DateTime? @map("deleted_at")
User User[]
Activities Activities[]
activityTypes ActivityTypes[]
@@map("energy_levels")
@@schema("mst")
@@ -869,8 +872,6 @@ model Activities {
checkOutLat Float? @map("check_out_lat")
checkOutLong Float? @map("check_out_long")
checkOutAddress String? @map("check_out_address") @db.VarChar(150)
energyLevelXid Int? @map("energy_level_xid")
energyLevel EnergyLevels? @relation(fields: [energyLevelXid], references: [id], onDelete: Restrict)
activityDurationMins Int? @map("activity_duration_mins")
foodAvailable Boolean? @default(false) @map("food_available")
foodIsChargeable Boolean? @default(false) @map("food_is_chargeable")

View File

@@ -142,6 +142,25 @@ async function main() {
skipDuplicates: true,
});
// ✅ Energy Levels
const highEnergy = await prisma.energyLevels.upsert({
where: { energyLevelName: 'High' },
update: {},
create: { energyLevelName: 'High', energyIcon: '📶', energyColor: 'Green', displayOrder: 1 },
});
const mediumEnergy = await prisma.energyLevels.upsert({
where: { energyLevelName: 'Medium' },
update: {},
create: { energyLevelName: 'Medium', energyIcon: '📶', energyColor: 'Yellow', displayOrder: 2 },
});
const lowEnergy = await prisma.energyLevels.upsert({
where: { energyLevelName: 'Low' },
update: {},
create: { energyLevelName: 'Low', energyIcon: '📶', energyColor: 'Red', displayOrder: 3 },
});
// ✅ Interests + Activity Types
const chillandzen = await prisma.interests.upsert({
where: { interestName: 'Chill and Zen' },
@@ -186,14 +205,14 @@ async function main() {
await prisma.activityTypes.createMany({
data: [
{ interestXid: aqua.id, activityTypeName: 'Scuba-Diving' },
{ interestXid: sweatmode.id, activityTypeName: 'Cloudboarding' },
{ interestXid: partycentral.id, activityTypeName: 'Soaring Glider' },
{ interestXid: sweatmode.id, activityTypeName: 'Speedway Racer' },
{ interestXid: aqua.id, activityTypeName: 'Aerial Surfing' },
{ interestXid: foodie.id, activityTypeName: 'Wine Tasting' },
{ interestXid: trackracer.id, activityTypeName: 'Track Racer' },
{ interestXid: thermalGliding.id, activityTypeName: 'Thermal Gliding' },
{ interestXid: aqua.id, activityTypeName: 'Scuba-Diving', energyLevelXid: highEnergy.id },
{ interestXid: sweatmode.id, activityTypeName: 'Cloudboarding', energyLevelXid: highEnergy.id },
{ interestXid: partycentral.id, activityTypeName: 'Soaring Glider', energyLevelXid: highEnergy.id },
{ interestXid: sweatmode.id, activityTypeName: 'Speedway Racer', energyLevelXid: highEnergy.id },
{ interestXid: aqua.id, activityTypeName: 'Aerial Surfing', energyLevelXid: highEnergy.id },
{ interestXid: foodie.id, activityTypeName: 'Wine Tasting', energyLevelXid: lowEnergy.id },
{ interestXid: trackracer.id, activityTypeName: 'Track Racer', energyLevelXid: highEnergy.id },
{ interestXid: thermalGliding.id, activityTypeName: 'Thermal Gliding', energyLevelXid: mediumEnergy.id },
],
skipDuplicates: true,
});
@@ -223,15 +242,6 @@ async function main() {
],
skipDuplicates: true, // prevents error if already seeded
});
// ✅ Energy Levels
await prisma.energyLevels.createMany({
data: [
{ energyLevelName: 'Low', energyIcon: '📶', energyColor: 'Red' },
{ energyLevelName: 'Medium', energyIcon: '📶', energyColor: 'Yellow' },
{ energyLevelName: 'High', energyIcon: '📶', energyColor: 'Green' },
],
skipDuplicates: true, // prevents error if already seeded
});
// ✅ Company types data
await prisma.companyTypes.upsert({