diff --git a/prisma/schema.prisma b/prisma/schema.prisma index ce4fe1a..d6d7a5f 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -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") diff --git a/prisma/seed.ts b/prisma/seed.ts index a97f7e5..307a7ab 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -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({