Files
MinglarBackendNestJS/prisma/seed.ts

1690 lines
112 KiB
TypeScript

import { PrismaClient } from '@prisma/client';
import { PrismaPg } from '@prisma/adapter-pg';
import 'dotenv/config';
import { seedCities } from './citiesSeeder'
const prisma = new PrismaClient({
adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL }),
});
async function main() {
// ✅ Countries
const india = await prisma.countries.upsert({
where: { countryName: 'India' },
update: {},
create: {
countryName: 'India',
countryCode: 'IN',
countryFlag: '🇮🇳',
isActive: true,
},
});
// ================= STATES =================
const statesList = [
'Andhra Pradesh',
'Arunachal Pradesh',
'Assam',
'Bihar',
'Chhattisgarh',
'Goa',
'Gujarat',
'Haryana',
'Himachal Pradesh',
'Jharkhand',
'Karnataka',
'Kerala',
'Madhya Pradesh',
'Maharashtra',
'Manipur',
'Meghalaya',
'Mizoram',
'Nagaland',
'Odisha',
'Punjab',
'Rajasthan',
'Sikkim',
'Tamil Nadu',
'Telangana',
'Tripura',
'Uttar Pradesh',
'Uttarakhand',
'West Bengal',
// Union Territories
'Andaman and Nicobar Islands',
'Chandigarh',
'Dadra and Nagar Haveli and Daman and Diu',
'Delhi',
'Jammu and Kashmir',
'Ladakh',
'Lakshadweep',
'Puducherry'
];
for (const stateName of statesList) {
await prisma.states.upsert({
where: { stateName },
update: {},
create: {
countryXid: india.id,
stateName,
},
});
}
// ✅ Currencies
await prisma.currencies.createMany({
data: [
{ countryXid: india.id, currencyName: 'Indian Rupee', currencySymbol: '₹' },
],
skipDuplicates: true,
});
// ✅ States
const maharashtra = await prisma.states.upsert({
where: { stateName: 'Maharashtra' },
update: {},
create: { countryXid: india.id, stateName: 'Maharashtra' },
});
const uttarpradesh = await prisma.states.upsert({
where: { stateName: 'Uttar-Pradesh' },
update: {},
create: { countryXid: india.id, stateName: 'Uttar-Pradesh' },
});
const Rajasthan = await prisma.states.upsert({
where: { stateName: 'Rajasthan' },
update: {},
create: { countryXid: india.id, stateName: 'Rajasthan' },
});
const Uttarakhand = await prisma.states.upsert({
where: { stateName: 'Uttarakhand' },
update: {},
create: { countryXid: india.id, stateName: 'Uttarakhand' },
});
const HimachalPradesh = await prisma.states.upsert({
where: { stateName: 'Himachal Pradesh' },
update: {},
create: { countryXid: india.id, stateName: 'Himachal Pradesh' },
});
const Gujrat = await prisma.states.upsert({
where: { stateName: 'Gujrat' },
update: {},
create: { countryXid: india.id, stateName: 'Gujrat' },
});
// ✅ Cities
await prisma.cities.createMany({
data: [
{ stateXid: maharashtra.id, cityName: 'Mumbai' },
{ stateXid: uttarpradesh.id, cityName: 'Azamgarh' },
{ stateXid: uttarpradesh.id, cityName: 'Lucknow' },
{ stateXid: uttarpradesh.id, cityName: 'Prayagraj' },
{ stateXid: Rajasthan.id, cityName: 'Jaipur' },
{ stateXid: Rajasthan.id, cityName: 'Jaisalmer' },
{ stateXid: Uttarakhand.id, cityName: 'Haridwar' },
{ stateXid: HimachalPradesh.id, cityName: 'Manali' },
{ stateXid: Gujrat.id, cityName: 'Surat' },
{ stateXid: Gujrat.id, cityName: 'Ahemdabad' },
{ stateXid: Gujrat.id, cityName: 'Rajkot' },
],
skipDuplicates: true,
});
// ✅ Taxes
await prisma.taxes.createMany({
data: [
{ countryXid: india.id, taxName: 'GST', taxPer: 18 },
],
skipDuplicates: true,
});
// ✅ Banks
const hdfc = await prisma.banks.upsert({
where: { bankName: 'HDFC Bank' },
update: {},
create: { countryXid: india.id, bankName: 'HDFC Bank' },
});
const indianBank = await prisma.banks.upsert({
where: { bankName: 'Indian Bank' },
update: {},
create: { countryXid: india.id, bankName: 'Indian Bank' },
});
const Kotak = await prisma.banks.upsert({
where: { bankName: 'Kotak Bank' },
update: {},
create: { countryXid: india.id, bankName: 'Kotak Bank' },
});
const BOI = await prisma.banks.upsert({
where: { bankName: 'Bank of India' },
update: {},
create: { countryXid: india.id, bankName: 'Bank of India' },
});
// ✅ Bank Branches
await prisma.bankBranches.createMany({
data: [
{
bankXid: hdfc.id,
stateXid: maharashtra.id,
cityXid: (await prisma.cities.findFirst({ where: { cityName: 'Mumbai' } }))!.id,
branchAddress: 'HDFC Fort Branch, Mumbai',
ifscCode: 'HDFC0001234',
},
{
bankXid: indianBank.id,
stateXid: maharashtra.id,
cityXid: (await prisma.cities.findFirst({ where: { cityName: 'Mumbai' } }))!.id,
branchAddress: 'Indian Bank Fort Branch, Mumbai',
ifscCode: 'IDIB0001234',
},
{
bankXid: Kotak.id,
stateXid: Uttarakhand.id,
cityXid: (await prisma.cities.findFirst({ where: { cityName: 'Haridwar' } }))!.id,
branchAddress: 'Kotak Fort Branch, Mumbai',
ifscCode: 'KTB0001234',
},
{
bankXid: BOI.id,
stateXid: uttarpradesh.id,
cityXid: (await prisma.cities.findFirst({ where: { cityName: 'Azamgarh' } }))!.id,
branchAddress: 'Bank of India Fort Branch, Mumbai',
ifscCode: 'BOI0001234',
},
],
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 & Zen' },
update: {},
create: { interestName: 'Chill & Zen', displayOrder: 1, interestColor: 'Blue', interestImage: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/InterestTypes/ChillandZen.png' },
});
const artsyfeels = await prisma.interests.upsert({
where: { interestName: 'Artsy Feels' },
update: {},
create: { interestName: 'Artsy Feels', displayOrder: 2, interestColor: 'Blue', interestImage: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/InterestTypes/ArtsyFeels.png' },
});
const sweatmode = await prisma.interests.upsert({
where: { interestName: 'Sweat Mode' },
update: {},
create: { interestName: 'Sweat Mode', displayOrder: 3, interestColor: 'Blue', interestImage: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/InterestTypes/SweatMode.png' },
});
const gamecraft = await prisma.interests.upsert({
where: { interestName: 'Gamecraft' },
update: {},
create: { interestName: 'Gamecraft', displayOrder: 4, interestColor: 'Blue', interestImage: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/InterestTypes/Gamecraft.png' },
});
const wildandfree = await prisma.interests.upsert({
where: { interestName: 'Wild & Free' },
update: {},
create: { interestName: 'Wild & Free', displayOrder: 5, interestColor: 'Blue', interestImage: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/InterestTypes/WildandFree.png' },
});
const splashlife = await prisma.interests.upsert({
where: { interestName: 'Splash Life' },
update: {},
create: { interestName: 'Splash Life', displayOrder: 6, interestColor: 'Blue', interestImage: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/InterestTypes/SplashLife.png' },
});
const cultureandheritage = await prisma.interests.upsert({
where: { interestName: 'Culture & Heritage' },
update: {},
create: { interestName: 'Culture & Heritage', displayOrder: 7, interestColor: 'Blue', interestImage: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/InterestTypes/Cultures.png' },
});
const Gastronomé = await prisma.interests.upsert({
where: { interestName: 'Gastronomé' },
update: {},
create: { interestName: 'Gastronomé', displayOrder: 8, interestColor: 'Blue', interestImage: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/InterestTypes/Gastranome.png' },
});
const sportsarena = await prisma.interests.upsert({
where: { interestName: 'Sports Arena' },
update: {},
create: { interestName: 'Sports Arena', displayOrder: 9, interestColor: 'Blue', interestImage: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/InterestTypes/SportsArena.png' },
});
const nightlifeevents = await prisma.interests.upsert({
where: { interestName: 'Nightlife & Events' },
update: {},
create: { interestName: 'Nightlife & Events', displayOrder: 10, interestColor: 'Blue', interestImage: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/InterestTypes/NightlifeandEvents.png' },
});
const furfam = await prisma.interests.upsert({
where: { interestName: 'Fur Fam' },
update: {},
create: { interestName: 'Fur Fam', displayOrder: 11, interestColor: 'Blue', interestImage: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/InterestTypes/petspace.jpg' },
});
const dogoodfeelgood = await prisma.interests.upsert({
where: { interestName: 'Do Good, Feel Good' },
update: {},
create: { interestName: 'Do Good, Feel Good', displayOrder: 12, interestColor: 'Blue', interestImage: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/InterestTypes/dogoodfeelgood.png' },
});
await prisma.activityTypes.createMany({
data: [
// --------Chill & Zen--------
{ interestXid: chillandzen.id, activityTypeName: 'Yoga', energyLevelXid: lowEnergy.id },
{ interestXid: chillandzen.id, activityTypeName: 'Meditation', energyLevelXid: lowEnergy.id },
{ interestXid: chillandzen.id, activityTypeName: 'Spa Retreat', energyLevelXid: lowEnergy.id },
{ interestXid: chillandzen.id, activityTypeName: 'Bath Experience', energyLevelXid: lowEnergy.id },
{ interestXid: chillandzen.id, activityTypeName: 'Stargazing', energyLevelXid: lowEnergy.id },
{ interestXid: chillandzen.id, activityTypeName: 'Nail Spa/Art', energyLevelXid: lowEnergy.id },
// --------Artsy Feels--------
{ interestXid: artsyfeels.id, activityTypeName: 'Canvas Painting', energyLevelXid: lowEnergy.id },
{ interestXid: artsyfeels.id, activityTypeName: 'Textile Painting', energyLevelXid: lowEnergy.id },
{ interestXid: artsyfeels.id, activityTypeName: 'Music and Instruments', energyLevelXid: mediumEnergy.id },
{ interestXid: artsyfeels.id, activityTypeName: 'Pottery', energyLevelXid: mediumEnergy.id },
{ interestXid: artsyfeels.id, activityTypeName: 'Knitting / Crocheting', energyLevelXid: lowEnergy.id },
{ interestXid: artsyfeels.id, activityTypeName: 'Lipstick Customisation', energyLevelXid: lowEnergy.id },
{ interestXid: artsyfeels.id, activityTypeName: 'Tufting', energyLevelXid: mediumEnergy.id },
{ interestXid: artsyfeels.id, activityTypeName: 'Acting', energyLevelXid: mediumEnergy.id },
{ interestXid: artsyfeels.id, activityTypeName: 'Art', energyLevelXid: lowEnergy.id },
{ interestXid: artsyfeels.id, activityTypeName: 'Tattoos', energyLevelXid: lowEnergy.id },
// --------Sweat Mode--------
{ interestXid: sweatmode.id, activityTypeName: 'Dance', energyLevelXid: highEnergy.id },
{ interestXid: sweatmode.id, activityTypeName: 'Kickboxing', energyLevelXid: highEnergy.id },
{ interestXid: sweatmode.id, activityTypeName: 'Gym with Personal Trainer', energyLevelXid: highEnergy.id },
{ interestXid: sweatmode.id, activityTypeName: 'Aerobic', energyLevelXid: highEnergy.id },
{ interestXid: sweatmode.id, activityTypeName: 'Skating', energyLevelXid: mediumEnergy.id },
{ interestXid: sweatmode.id, activityTypeName: 'Martial Arts', energyLevelXid: highEnergy.id },
{ interestXid: sweatmode.id, activityTypeName: 'Trampoline Park', energyLevelXid: highEnergy.id },
{ interestXid: sweatmode.id, activityTypeName: 'Wall Climbing', energyLevelXid: highEnergy.id },
{ interestXid: sweatmode.id, activityTypeName: 'Rope Course', energyLevelXid: highEnergy.id },
{ interestXid: sweatmode.id, activityTypeName: 'Running', energyLevelXid: highEnergy.id },
//---------Game Craft---------
{ interestXid: gamecraft.id, activityTypeName: 'Billiard / Snooker', energyLevelXid: lowEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Squash', energyLevelXid: highEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Rage Room', energyLevelXid: highEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'E-Sports', energyLevelXid: lowEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Table Tennis', energyLevelXid: mediumEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'VR Games', energyLevelXid: mediumEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Escape Room', energyLevelXid: mediumEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Paintball', energyLevelXid: highEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Bowling', energyLevelXid: mediumEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Shooting Range', energyLevelXid: lowEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Bumper Cars', energyLevelXid: lowEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Ice Skating', energyLevelXid: mediumEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Snow City', energyLevelXid: lowEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Pole Artistry', energyLevelXid: highEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Hula Hoop', energyLevelXid: mediumEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Foosball', energyLevelXid: lowEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Go Karting', energyLevelXid: mediumEnergy.id },
{ interestXid: gamecraft.id, activityTypeName: 'Laser Maze', energyLevelXid: mediumEnergy.id },
//---------Wild & Free---------
{ interestXid: wildandfree.id, activityTypeName: 'Horse Riding', energyLevelXid: mediumEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Camping', energyLevelXid: mediumEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Rock Climbing', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Rappelling', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Night Forest Trail', energyLevelXid: mediumEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Trekking', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Road Cycling', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Mountain Cycling', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Sky Cycling', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Motorcycling', energyLevelXid: mediumEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Skiing', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Snowboarding', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Sandboarding', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Paragliding', energyLevelXid: mediumEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Paramotoring', energyLevelXid: mediumEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Microlight Flying', energyLevelXid: lowEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Airplane Joyride', energyLevelXid: lowEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Flying Fox', energyLevelXid: mediumEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Zip Lining', energyLevelXid: mediumEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Bungee Jumping', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Rocket Ejector', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Giant Swing', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Skydiving', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Wildlife Safari', energyLevelXid: lowEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Desert Safari', energyLevelXid: mediumEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Ghost Tour', energyLevelXid: lowEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Dog Sledding', energyLevelXid: mediumEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Hot-Air Balloon Ride', energyLevelXid: lowEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Wilderness Survival and Primitive Life Skills', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Off-Road Driving Trails (4W)', energyLevelXid: mediumEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Stay in Forest House', energyLevelXid: lowEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Zero Gravity', energyLevelXid: lowEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Indoor Skydiving', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Zorbing', energyLevelXid: mediumEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'ATV Ride', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Dirt Biking', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Canyoning', energyLevelXid: highEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Ropeway Ride', energyLevelXid: lowEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Camel Safari', energyLevelXid: lowEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Helicopter Ride', energyLevelXid: lowEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Birdwatching', energyLevelXid: lowEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Farm Visit', energyLevelXid: lowEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Road Trip', energyLevelXid: mediumEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Nature Park', energyLevelXid: lowEnergy.id },
{ interestXid: wildandfree.id, activityTypeName: 'Segways', energyLevelXid: lowEnergy.id },
//---------Splash Life---------
{ interestXid: splashlife.id, activityTypeName: 'Rafting', energyLevelXid: highEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Sailing', energyLevelXid: mediumEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Crab Catching', energyLevelXid: mediumEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Surfing', energyLevelXid: highEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Scuba Diving', energyLevelXid: highEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Snorkeling', energyLevelXid: mediumEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Deep Sea Fishing', energyLevelXid: mediumEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Angling', energyLevelXid: lowEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Parasailing', energyLevelXid: mediumEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Flyboarding', energyLevelXid: highEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Kayaking', energyLevelXid: highEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Jet Ski Ride', energyLevelXid: highEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Cliff Jumping', energyLevelXid: highEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Cruise', energyLevelXid: lowEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Yacht', energyLevelXid: lowEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Boat Ride', energyLevelXid: lowEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Dolphin Watching', energyLevelXid: lowEnergy.id },
{ interestXid: splashlife.id, activityTypeName: 'Whale Watching', energyLevelXid: lowEnergy.id },
//---------Culture & Heritage---------
{ interestXid: cultureandheritage.id, activityTypeName: 'Visit to Ancient Mysteries', energyLevelXid: mediumEnergy.id },
{ interestXid: cultureandheritage.id, activityTypeName: 'History and Archeology', energyLevelXid: mediumEnergy.id },
{ interestXid: cultureandheritage.id, activityTypeName: 'Traditional Village Tour', energyLevelXid: mediumEnergy.id },
{ interestXid: cultureandheritage.id, activityTypeName: 'City Tour', energyLevelXid: mediumEnergy.id },
{ interestXid: cultureandheritage.id, activityTypeName: 'Luxury Train', energyLevelXid: lowEnergy.id },
{ interestXid: cultureandheritage.id, activityTypeName: 'Joy Train Ride', energyLevelXid: lowEnergy.id },
{ interestXid: cultureandheritage.id, activityTypeName: 'Festivals Events', energyLevelXid: mediumEnergy.id },
{ interestXid: cultureandheritage.id, activityTypeName: 'Local Folk Dance', energyLevelXid: mediumEnergy.id },
{ interestXid: cultureandheritage.id, activityTypeName: 'Spiritual Activities', energyLevelXid: lowEnergy.id },
{ interestXid: cultureandheritage.id, activityTypeName: 'Ancient Temples', energyLevelXid: mediumEnergy.id },
{ interestXid: cultureandheritage.id, activityTypeName: 'The Unexplained', energyLevelXid: mediumEnergy.id },
//---------Gastronomé---------
{ interestXid: Gastronomé.id, activityTypeName: 'Culinary Experience', energyLevelXid: mediumEnergy.id },
{ interestXid: Gastronomé.id, activityTypeName: 'Outstanding Hawkers Food', energyLevelXid: mediumEnergy.id },
{ interestXid: Gastronomé.id, activityTypeName: 'Traditional Food', energyLevelXid: mediumEnergy.id },
{ interestXid: Gastronomé.id, activityTypeName: 'Exotic Food', energyLevelXid: mediumEnergy.id },
{ interestXid: Gastronomé.id, activityTypeName: 'Farm to Table Experience', energyLevelXid: mediumEnergy.id },
{ interestXid: Gastronomé.id, activityTypeName: 'Wine Testing', energyLevelXid: lowEnergy.id },
{ interestXid: Gastronomé.id, activityTypeName: 'Beer Testing', energyLevelXid: lowEnergy.id },
{ interestXid: Gastronomé.id, activityTypeName: 'Vodka Testing', energyLevelXid: lowEnergy.id },
{ interestXid: Gastronomé.id, activityTypeName: 'Traditional Liquor Testing', energyLevelXid: lowEnergy.id },
{ interestXid: Gastronomé.id, activityTypeName: 'Brewery Tour', energyLevelXid: mediumEnergy.id },
{ interestXid: Gastronomé.id, activityTypeName: 'Cheese Testing', energyLevelXid: lowEnergy.id },
{ interestXid: Gastronomé.id, activityTypeName: 'Coffee Brewing and Tasting', energyLevelXid: lowEnergy.id },
{ interestXid: Gastronomé.id, activityTypeName: 'Chocolate Making and Tasting', energyLevelXid: lowEnergy.id },
{ interestXid: Gastronomé.id, activityTypeName: 'Mocktail Making Workshop', energyLevelXid: mediumEnergy.id },
{ interestXid: Gastronomé.id, activityTypeName: 'Home Dine-In', energyLevelXid: lowEnergy.id },
//---------Sports Arena---------
{ interestXid: sportsarena.id, activityTypeName: 'Swimming Play', energyLevelXid: highEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Open Tennis Play', energyLevelXid: highEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Badminton Play', energyLevelXid: highEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Football Soccer Play', energyLevelXid: highEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Soapy Football Play', energyLevelXid: highEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Tennis Play', energyLevelXid: highEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Golf Play', energyLevelXid: mediumEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Volleyball Play', energyLevelXid: highEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Cricket Play', energyLevelXid: highEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Basketball Play', energyLevelXid: highEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Table Tennis Play', energyLevelXid: mediumEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Squash Play', energyLevelXid: highEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Pickleball Play', energyLevelXid: mediumEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Swimming Live Screening', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Cricket Screening', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Football Screening', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Badminton Screening', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Tennis Screening', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Volleyball Screening', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Basketball Screening', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Rugby Screening', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Olympic Screening', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Horse Racing Screening', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Cricket Match', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Football Match', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Badminton Match', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Tennis Match', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Volleyball Match', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Basketball Match', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Rugby Match', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Olympic Match', energyLevelXid: lowEnergy.id },
{ interestXid: sportsarena.id, activityTypeName: 'Live Horse Racing', energyLevelXid: lowEnergy.id },
//---------Nightlife & Events---------
{ interestXid: nightlifeevents.id, activityTypeName: 'Movie Watching Theatre', energyLevelXid: lowEnergy.id },
{ interestXid: nightlifeevents.id, activityTypeName: 'Movie Watching Outdoor', energyLevelXid: lowEnergy.id },
{ interestXid: nightlifeevents.id, activityTypeName: 'Magic Show Watching', energyLevelXid: lowEnergy.id },
{ interestXid: nightlifeevents.id, activityTypeName: 'Casino', energyLevelXid: mediumEnergy.id },
{ interestXid: nightlifeevents.id, activityTypeName: 'Karaoke', energyLevelXid: mediumEnergy.id },
{ interestXid: nightlifeevents.id, activityTypeName: 'Beach Bonfire', energyLevelXid: lowEnergy.id },
{ interestXid: nightlifeevents.id, activityTypeName: 'Concert', energyLevelXid: mediumEnergy.id },
{ interestXid: nightlifeevents.id, activityTypeName: 'Flea Market', energyLevelXid: mediumEnergy.id },
{ interestXid: nightlifeevents.id, activityTypeName: 'Beach Club Events', energyLevelXid: highEnergy.id },
{ interestXid: nightlifeevents.id, activityTypeName: 'Clubbing', energyLevelXid: highEnergy.id },
//---------Fur Fam---------
{ interestXid: furfam.id, activityTypeName: 'Dog Training', energyLevelXid: mediumEnergy.id },
{ interestXid: furfam.id, activityTypeName: 'Dog Events and Show', energyLevelXid: lowEnergy.id },
{ interestXid: furfam.id, activityTypeName: 'Dog Grooming', energyLevelXid: lowEnergy.id },
{ interestXid: furfam.id, activityTypeName: 'Bird Show', energyLevelXid: lowEnergy.id },
{ interestXid: furfam.id, activityTypeName: 'Cat Cafe', energyLevelXid: lowEnergy.id },
//---------Do Good, Feel Good---------
{ interestXid: dogoodfeelgood.id, activityTypeName: 'Old Age Home Visits', energyLevelXid: lowEnergy.id },
{ interestXid: dogoodfeelgood.id, activityTypeName: 'Orphanage Visits', energyLevelXid: lowEnergy.id },
{ interestXid: dogoodfeelgood.id, activityTypeName: 'Tree Planting', energyLevelXid: mediumEnergy.id },
{ interestXid: dogoodfeelgood.id, activityTypeName: 'Animal Volunteering', energyLevelXid: mediumEnergy.id },
{ interestXid: dogoodfeelgood.id, activityTypeName: 'Beach Clean Ups', energyLevelXid: highEnergy.id },
{ interestXid: dogoodfeelgood.id, activityTypeName: 'Educating Children', energyLevelXid: mediumEnergy.id },
],
skipDuplicates: true,
});
// ✅ Document Types
await prisma.documentType.createMany({
data: [
{ documentTypeName: 'GST Certificate', displayOrder: 1 },
{ documentTypeName: 'PAN / BIN Card', displayOrder: 2 },
{ documentTypeName: 'Registration Certification', displayOrder: 3 },
{ documentTypeName: 'Aadhaar Card', displayOrder: 4 },
{ documentTypeName: 'Fire Insurance', displayOrder: 5 },
{ documentTypeName: 'ATOAI Certification', displayOrder: 6 },
{ documentTypeName: 'FASSI Certification', displayOrder: 7 },
{ documentTypeName: 'Safety Certification', displayOrder: 8 },
{ documentTypeName: 'Others', displayOrder: 9 },
],
skipDuplicates: true,
});
// ✅ Amenities
await prisma.amenities.createMany({
data: [
{ amenitiesName: 'Air-Conditioned', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/AirConditioned.png' },
{ amenitiesName: 'Baking sheet', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/BakingSheet.png' },
{ amenitiesName: 'Barbecue utensils', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/BarbecueUtensils.png' },
{ amenitiesName: 'Bath/Shower', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/BathShower.png' },
{ amenitiesName: 'Batting cage', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/BattingCage.png' },
{ amenitiesName: 'Beach access', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/BeachAccess.png' },
{ amenitiesName: 'Beach essentials', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/BeachEsstentials.png' },
{ amenitiesName: 'Bed linen', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/BedLinen.png' },
{ amenitiesName: 'Bidet', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Bidet.png' },
{ amenitiesName: 'Bikes', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Bikes.png' },
{ amenitiesName: 'Blender', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Blender.png' },
{ amenitiesName: 'Board games', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/BoardGames.png' },
{ amenitiesName: 'Boat berth', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/BoatBerth.png' },
{ amenitiesName: 'Books and reading material', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/BooksAndReadingMaterial.png' },
{ amenitiesName: 'Ceiling fan', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/CealingFan.png' },
{ amenitiesName: 'Cleaning available during stay', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/CleaningAvailable.png' },
{ amenitiesName: 'Coffee maker', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/CoffeeMaker.png' },
{ amenitiesName: 'Conditioner', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Conditioner.png' },
{ amenitiesName: 'Hot water', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/HotWater.png' },
{ amenitiesName: 'Indoor fireplace', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/IndoorFirePlace.png' },
{ amenitiesName: 'Iron', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Iron.png' },
{ amenitiesName: 'Kettle', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Kettle.png' },
{ amenitiesName: 'Kitchen', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Kitchen.png' },
{ amenitiesName: 'Lake access', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/LakeAccess.png' },
{ amenitiesName: 'Lift', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Lift.png' },
{ amenitiesName: 'Microwave', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/MicroWave.png' },
{ amenitiesName: 'Mini fridge', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/MiniFridge.png' },
{ amenitiesName: 'Fridge', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Fridge.png' },
{ amenitiesName: 'Games console', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/GamesConsole.png' },
{ amenitiesName: 'Garden', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Garden.png' },
{ amenitiesName: 'Gym', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Gym.png' },
{ amenitiesName: 'Hair dryer', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/HairDryer.png' },
{ amenitiesName: 'Hammock', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Hammock.png' },
{ amenitiesName: 'Hangers', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Hangers.png' },
{ amenitiesName: 'Heating', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Heating.png' },
{ amenitiesName: 'High chair', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/HighChair.png' },
{ amenitiesName: 'Ethernet connection', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/EthernetConnection.png' },
{ amenitiesName: 'EV charger', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/EVCharger.png' },
{ amenitiesName: 'Exercise equipment', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/ExerciseEquipment.png' },
{ amenitiesName: 'Extra pillows and blankets', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/ExtraPillowAndBlanket.png' },
{ amenitiesName: 'Fire extinguisher', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/FireExtinguisher.png' },
{ amenitiesName: 'Firepit', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/FirePit.png' },
{ amenitiesName: 'Fireplace guards', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/FireplaceGuards.png' },
{ amenitiesName: 'First aid kit', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/FirstAidKit.png' },
{ amenitiesName: 'Free on street parking', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/FreeStreetParking.png' },
{ amenitiesName: 'Free parking on premises', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/FreeParkingOnPremises.png' },
{ amenitiesName: 'Dedicated workspace', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/DedicatedWorkspace.png' },
{ amenitiesName: 'Dinning table', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/DiningTable.png' },
{ amenitiesName: 'Dishes and cutlery', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/DishesAndCutlery.png' },
{ amenitiesName: 'Dryer', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Dryer.png' },
{ amenitiesName: 'Essentials', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Essentials.png' },
{ amenitiesName: 'Safe', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Safe.png' },
{ amenitiesName: 'Shampoo', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Shampoo.png' },
{ amenitiesName: 'Shower gel', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/ShowerGel.png' },
{ amenitiesName: 'Mini golf', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/MiniGolf.png' },
{ amenitiesName: 'Mosquito net', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/MosquitoNet.png' },
{ amenitiesName: 'Mobile network', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/MobileNet.png' },
{ amenitiesName: 'Outdoor dining area', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/OutdoorDiningArea.png' },
{ amenitiesName: 'Outdoor kitchen', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/OutdoorKitchen.png' },
{ amenitiesName: 'Oven', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Oven.png' },
{ amenitiesName: 'Paid parking off premises', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/PaidParkingOffPremises.png' },
{ amenitiesName: 'Paid parking on premises', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/PaidParkingOnPremises.png' },
{ amenitiesName: 'Patio or balcony', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/PatioOrBalcony.png' },
{ amenitiesName: 'Piano', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Piano.png' },
{ amenitiesName: 'Mobile charging point', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/MobileChargingPoint.png' },
{ amenitiesName: 'Pocket wifi', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/PocketWifi.png' },
{ amenitiesName: 'Pool', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Pool.png' },
{ amenitiesName: 'Portable fans', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/PortableFans.png' },
{ amenitiesName: 'Private entrance', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/PrivateEntrance.png' },
{ amenitiesName: 'Skate ramp', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/SkateRamp.png' },
{ amenitiesName: 'Ski-in/out', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Ski-InOut.png' },
{ amenitiesName: 'Smoke alarm', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/SmokeAlarm.png' },
{ amenitiesName: 'Sound system', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/SoundSystem.png' },
{ amenitiesName: 'Sun loungers', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/SunLoungers.png' },
{ amenitiesName: 'Toaster', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Toaster.png' },
{ amenitiesName: 'Travel cot', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/TravelCot.png' },
{ amenitiesName: 'TV', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/TV.png' },
{ amenitiesName: 'Washing machine', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/WashingMachine.png' },
{ amenitiesName: 'Waterfront', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Waterfront.png' },
{ amenitiesName: 'Wifi', amenitiesIcon: 'https://minglar-dev-bucket.s3.ap-south-1.amazonaws.com/StaticImages/Amenities/Wifi.png' }
],
skipDuplicates: true, // prevents error if already seeded
});
// ✅ Activity Sort Filter
await prisma.activitySortFilter.createMany({
data: [
{ sortFilterName: 'Rating', displayOrder: 1 },
{ sortFilterName: 'Price', displayOrder: 2 },
{ sortFilterName: 'Sustainability', displayOrder: 3 },
{ sortFilterName: 'NearbyRadius', displayOrder: 4 },
{ sortFilterName: 'Quality', displayOrder: 5 },
],
skipDuplicates: true
});
// ✅ Company types data
// await prisma.companyTypes.upsert({
// where: { companyTypeName: 'Proprietory' },
// update: {},
// create: { companyTypeName: 'Proprietory', displayOrder: 1 },
// });
await prisma.companyTypes.upsert({
where: { companyTypeName: 'One Person Company' },
update: {},
create: { companyTypeName: 'One Person Company', displayOrder: 2 },
});
// await prisma.companyTypes.upsert({
// where: { companyTypeName: 'Limited Liability Partnership' },
// update: {},
// create: { companyTypeName: 'Limited Liability Partnership', displayOrder: 3 },
// });
// await prisma.companyTypes.upsert({
// where: { companyTypeName: 'Partnership Firm' },
// update: {},
// create: { companyTypeName: 'Partnership Firm', displayOrder: 4 },
// });
await prisma.companyTypes.upsert({
where: { companyTypeName: 'Private Limited' },
update: {},
create: { companyTypeName: 'Private Limited', displayOrder: 5 },
});
// await prisma.companyTypes.upsert({
// where: { companyTypeName: 'Non-Profit Organisation' },
// update: {},
// create: { companyTypeName: 'Non-Profit Organisation', displayOrder: 6 },
// });
await prisma.companyTypes.upsert({
where: { companyTypeName: 'Public Limited' },
update: {},
create: { companyTypeName: 'Public Limited', displayOrder: 7 },
});
// ✅ Food Types
await prisma.foodTypes.createMany({
data: [
{ foodTypeName: 'Veg' },
{ foodTypeName: 'Non-Veg' },
{ foodTypeName: 'Vegan' },
{ foodTypeName: 'Jain' },
],
skipDuplicates: true,
});
// ✅ AGE RESTRICTIONS
await prisma.ageRestrictions.createMany({
data: [
{ ageRestrictionName: 'Below 18', minAge: 1, maxAge: 17 },
{ ageRestrictionName: 'Above 18', minAge: 18, maxAge: 200 },
],
skipDuplicates: true,
});
// ✅ ALLOWED ENTRY TYPES
await prisma.allowedEntryTypes.createMany({
data: [
{ allowedEntryTypeName: 'Solo' },
{ allowedEntryTypeName: 'Couple' },
{ allowedEntryTypeName: 'Group' },
],
skipDuplicates: true,
});
// ✅ ROLES
await prisma.roles.createMany({
data: [
{ roleName: 'Admin' },
{ roleName: 'Co_Admin' },
{ roleName: 'Account_Manager' },
{ roleName: 'Host' },
{ roleName: 'Operator' },
{ roleName: 'User' },
],
skipDuplicates: true,
});
// ✅ Frequencies
await prisma.frequencies.createMany({
data: [
{ frequencyName: 'Single Event' },
{ frequencyName: 'Multiple Events Per Day' },
{ frequencyName: 'Training' },
],
skipDuplicates: true,
});
// ✅ Navigation Modes
await prisma.navigationModes.createMany({
data: [
{ navigationModeName: 'Elephant Ride', navigationModeIcon: '🚗' },
{ navigationModeName: 'Horse Ride', navigationModeIcon: '🏍️' },
{ navigationModeName: 'Camel Ride', navigationModeIcon: '🚶' },
],
skipDuplicates: true,
});
// ✅ Transport Modes
await prisma.transportModes.createMany({
data: [
{ transportModeName: 'Open Jeep / Car / SUV - 4 seater', transportModeIcon: '🚌' },
{ transportModeName: 'Open Jeep / Car / SUV - 6 seater', transportModeIcon: '🚌' },
{ transportModeName: '4W Jeep / SUV - 4 seater', transportModeIcon: '🚆' },
{ transportModeName: '4W Jeep / SUV - 6 seater', transportModeIcon: '🚆' },
],
skipDuplicates: true,
});
console.log('🚀 Starting city seeding...')
await seedCities(prisma)
console.log('✅ City seeding finished')
// ✅ PQQ Categories + Questions + Answers
const categoriesData = [
{
categoryName: "Sustainability",
displayOrder: 1,
isActive: true,
subCategories: [
// -----------------------------------------------------
// SUBCATEGORY 1: Environmental Practices
// -----------------------------------------------------
{
subCategoryName: "Environmental Practices",
displayOrder: 1,
isActive: true,
questions: [
// QUESTION 1
{
questionName: 'What waste management practices do you have in place to minimize environmental impact? Examples: Recycling bins, composting organic waste, reducing single-use plastics.',
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: 'We do not have specific waste management practices.', points: 0 },
{ name: 'We separate waste and recycle basic items like paper and plastic.', points: 5 },
{ name: 'We have a comprehensive recycling program including composting organic waste.', points: 8 },
{ name: 'We actively reduce waste at the source and partner with local recycling organizations.', points: 10 },
],
},
// QUESTION 2
{
questionName: 'Can you provide examples of energy-efficient appliances or renewable energy sources you use? Examples: Solar panels, energy-efficient lighting, renewable energy certificates.',
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: 'We do not use energy-efficient appliances or renewable energy sources.', points: 0 },
{ name: 'We use energy-efficient light bulbs and appliances.', points: 5 },
{ name: 'We have solar panels and energy-efficient heating/cooling systems.', points: 8 },
{ name: 'We utilize a combination of renewable energy sources and advanced energy-saving technologies.', points: 10 },
],
},
{
questionName: 'What measures do you take to conserve water? Examples: Low-flow fixtures, rainwater harvesting, greywater recycling.',
maxPoints: 10,
displayOrder: 3,
answers: [
{ name: 'We do not have specific water conservation measures.', points: 0 },
{ name: 'We encourage guests to limit water use.', points: 5 },
{ name: 'We have low-flow fixtures and water-saving appliances installed.', points: 8 },
{ name: 'We implement rainwater harvesting and greywater recycling systems.', points: 10 },
],
},
{
questionName: 'How do you monitor and reduce your carbon footprint? Examples: Carbon audits, offsetting emissions, energy-saving initiatives.',
maxPoints: 10,
displayOrder: 4,
answers: [
{ name: 'We do not monitor or take steps to reduce our carbon footprint.', points: 0 },
{ name: 'We track our energy usage and try to minimize it.', points: 5 },
{ name: 'We have set carbon reduction targets and regularly monitor our progress.', points: 8 },
{ name: 'We offset our carbon emissions through verified programs and continually improve our sustainability practices.', points: 10 },
],
},
{
questionName: 'Do you source products and materials sustainably? Can you provide examples? Examples: Local, organic, fair-trade products.',
maxPoints: 10,
displayOrder: 5,
answers: [
{ name: 'We do not prioritize sustainable sourcing.', points: 0 },
{ name: 'We source some products locally and sustainably.', points: 5 },
{ name: 'We prioritize local, organic, and fair-trade products.', points: 8 },
{ name: 'We have strict sourcing policies that ensure all products are sustainable and ethically produced.', points: 10 },
],
},
]
},
// -----------------------------------------------------
// SUBCATEGORY 2: Community Impact
// -----------------------------------------------------
{
subCategoryName: "Community Impact",
displayOrder: 2,
isActive: true,
questions: [
// QUESTION 1
{
questionName:
"How do you support local employment and engage with the community? Examples: Hiring local staff, partnering with community organizations, participating in local events.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not have specific practices to support local employment or community engagement.", points: 0 },
{ name: "We hire local staff but do not have formal community engagement programs.", points: 5 },
{ name: "We actively employ local residents and participate in community events.", points: 8 },
{ name: "We have partnerships with local organizations and invest in community development projects.", points: 10 }
]
},
// QUESTION 2
{
questionName:
"Are you involved in any community projects or cultural preservation activities? Examples: Supporting local artisans, sponsoring cultural festivals, contributing to community development.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We are not involved in any community or cultural preservation projects.", points: 0 },
{ name: "We support community projects through donations.", points: 5 },
{ name: "We participate in and organize community events and cultural preservation activities.", points: 8 },
{ name: "We lead major community development initiatives and cultural preservation projects.", points: 10 }
]
},
// QUESTION 3
{
questionName:
"Can you provide examples of how your business benefits the local community? Examples: Providing jobs, sourcing local products, investing in local infrastructure.",
maxPoints: 10,
displayOrder: 3,
answers: [
{ name: "We do not have specific examples.", points: 0 },
{ name: "We provide employment opportunities for local residents.", points: 5 },
{ name: "We support local businesses by sourcing products and services locally.", points: 8 },
{ name: "We invest in local infrastructure and educational programs.", points: 10 }
]
},
]
},
// -----------------------------------------------------
//SUBCATEGORY 3 : Sustainable Tourism Certification
// -----------------------------------------------------
{
subCategoryName: "Sustainable Tourism Certification",
displayOrder: 3,
isActive: true,
questions: [
// QUESTION 1
{
questionName:
"Do you have any recognized sustainable tourism certifications (e.g., Green Globe, EarthCheck, Travelife)? Please provide details. Examples: Certification names and details, certificates.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not have any sustainable tourism certifications.", points: 0 },
{ name: "We are in the process of obtaining a certification.", points: 5 },
{ name: "We have one recognized sustainable tourism certification.", points: 8 },
{ name: "We hold multiple recognized sustainable tourism certifications and regularly audit our practices.", points: 10 },
{ name: "Not applicable.", points: 0 }
]
}
]
},
]
},
// ----------------------------------------
// ADD MORE CATEGORIES HERE
// Example:
// ----------------------------------------
{
categoryName: "Safety",
displayOrder: 2,
subCategories: [
{
subCategoryName: "General Safety Protocols",
displayOrder: 1,
questions: [
{
questionName: "What safety measures do you have in place for your activities? Examples: Safety briefings, emergency exits, safety equipment.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not have specific safety measures.", points: 0 },
{ name: "We provide basic safety information and equipment.", points: 5 },
{ name: "We have comprehensive safety measures, including briefings and equipment checks.", points: 8 },
{ name: "We follow strict safety protocols and conduct regular drills and equipment inspections.", points: 10 }
]
},
{
questionName: "Can you describe your emergency response plan? Examples: Evacuation procedures, emergency contact numbers, first aid kits.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not have an emergency response plan.", points: 0 },
{ name: "We have a basic plan but do not conduct regular drills.", points: 5 },
{ name: "We have a detailed plan and conduct regular emergency drills.", points: 8 },
{ name: "We have a comprehensive emergency response plan, regularly updated and practiced.", points: 10 }
]
}
]
},
{
subCategoryName: "Staff Training",
displayOrder: 2,
questions: [
{
questionName: "How often do you conduct safety training and drills? Examples: Annual training sessions, quarterly drills, surprise inspections.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not conduct regular safety training or drills.", points: 0 },
{ name: "We conduct safety training and drills occasionally.", points: 5 },
{ name: "We conduct safety training and drills annually.", points: 8 },
{ name: "We conduct safety training and drills multiple times a year.", points: 10 }
]
}
]
},
{
subCategoryName: "Emergency Evacuation Procedures",
displayOrder: 3,
questions: [
{
questionName: "Do you have clear, well-communicated emergency evacuation procedures in place for guests, including those with injuries or mobility issues? Examples: Evacuation maps in guest rooms, staff trained to assist injured guests during emergencies.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "No emergency evacuation procedures are in place.", points: 0 },
{ name: "Basic evacuation procedures are in place, but they may not fully address guests with injuries or mobility issues.", points: 5 },
{ name: "Evacuation procedures are in place and communicated to guests, with some provisions for those with injuries or mobility issues.", points: 8 },
{ name: "Well-defined and regularly practiced evacuation procedures are in place, with specific provisions for assisting guests with injuries or mobility issues.", points: 10 }
]
}
]
},
{
subCategoryName: "Safety in Areas with Criminal Activity",
displayOrder: 4,
questions: [
{
questionName: "How do you ensure the safety of travelers in areas with a risk of robberies or other personal safety concerns? Examples: Security measures, partnerships with local law enforcement, guest advisories.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not have specific measures for traveler safety in such areas.", points: 0 },
{ name: "We provide basic safety advice to travelers about risky areas.", points: 5 },
{ name: "We have partnerships with local law enforcement and provide detailed safety advisories to travelers.", points: 8 },
{ name: "We implement comprehensive safety measures, including security personnel, secure transportation options, and close collaboration with local authorities.", points: 10 }
]
},
{
questionName: "What measures are in place to prevent incidents related to criminal activity during your activities? Examples: Curfew policies, guided tours only in safe areas, emergency contact numbers.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not have specific measures to prevent such incidents.", points: 0 },
{ name: "We avoid operating in high-risk areas but do not have formal measures.", points: 5 },
{ name: "We restrict our activities to safe areas and have protocols for handling emergencies.", points: 8 },
{ name: "We conduct thorough risk assessments, restrict activities to safe times and areas, and provide secure transportation and 24/7 emergency support.", points: 10 },
{ name: "Not applicable.", points: 0 }
]
},
]
},
{
subCategoryName: "Safety of Transportation",
displayOrder: 5,
questions: [
{
questionName: "How do you ensure the safety of travelers during transportation from the nearest airport, train or bus station to your destination? Examples: Verified transportation providers, secure pickup points, real-time monitoring.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not have specific measures for transportation safety.", points: 0 },
{ name: "We provide basic advice on safe transportation options.", points: 5 },
{ name: "We use verified transportation providers and secure pickup points.", points: 8 },
{ name: "We offer comprehensive transportation safety measures, including verified providers, secure pickup points, and real-time monitoring.", points: 10 }
]
},
{
questionName: "What measures are in place to ensure the safety of travelers in cabs or rickshaws arranged by your service? Examples: Driver background checks, vehicle safety checks, GPS tracking.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not have specific measures for cab or rickshaw safety.", points: 0 },
{ name: "We recommend trusted local transportation services.", points: 5 },
{ name: "We conduct driver background checks and ensure vehicle safety.", points: 8 },
{ name: "We implement extensive measures, including driver background checks, vehicle safety checks, and GPS tracking.", points: 10 },
{ name: "Not applicable as we do not arrange cabs or rickshaws for the travellers.", points: 0 }
]
},
{
questionName: "Do you provide any emergency contact or support during transportation for travelers? Examples: 24/7 helpline, emergency response team, real-time communication.",
maxPoints: 10,
displayOrder: 3,
answers: [
{ name: "We do not provide specific emergency contact or support during transportation.", points: 0 },
{ name: "We provide a contact number for emergency use.", points: 5 },
{ name: "We conduct driver background checks and ensure vehicle safety.", points: 8 },
{ name: "We implement extensive measures, including driver background checks, vehicle safety checks, and GPS tracking.", points: 10 },
{ name: "Not applicable.", points: 0 }
]
},
]
},
{
subCategoryName: "Safety in Areas with Wild Animals",
displayOrder: 6,
questions: [
{
questionName: "How do you ensure the safety of travelers in areas where wild animals are known to roam? Examples: Wildlife awareness programs, guided tours, safety briefings.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not have specific measures for wildlife safety.", points: 0 },
{ name: "We provide basic advice to travelers about wildlife safety.", points: 5 },
{ name: "We conduct guided tours with trained personnel and provide detailed safety briefings.", points: 8 },
{ name: "We implement comprehensive wildlife safety measures, including trained guides, safety equipment, and collaboration with wildlife experts.", points: 10 },
{ name: "Not applicable.", points: 0 }
]
},
{
questionName: "What precautions do you take to minimize the risk of wildlife encounters during activities? Examples: Activity scheduling, designated safe areas, wildlife monitoring.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not take specific precautions for wildlife encounters.", points: 0 },
{ name: "We provide information on wildlife safety but do not take specific precautions.", points: 5 },
{ name: "We schedule activities to avoid high-risk times and monitor wildlife activity.", points: 8 },
{ name: "We have strict protocols, including avoiding high-risk areas and times, using designated safe zones, and employing wildlife monitoring systems.", points: 10 },
{ name: "Not applicable.", points: 0 }
]
},
{
questionName: "Do you provide training for your staff to handle wildlife encounters safely? Examples: Wildlife behavior training, emergency procedures, use of safety equipment.",
maxPoints: 10,
displayOrder: 3,
answers: [
{ name: "Our staff do not receive specific training for wildlife encounters.", points: 0 },
{ name: "Some staff have basic training on wildlife safety.", points: 5 },
{ name: "Most staff are trained to handle wildlife encounters and know emergency procedures.", points: 8 },
{ name: "All staff receive comprehensive training, including wildlife behavior, emergency response, and the use of safety equipment.", points: 10 },
{ name: "Not applicable.", points: 0 }
]
},
]
},
]
},
//----------------------------
// Gen Z-Specific Parameters
//----------------------------
{
categoryName: "Gen Z-Specific Parameters",
displayOrder: 3,
subCategories: [
{
subCategoryName: "Digital Engagement",
displayOrder: 1,
questions: [
{
questionName: "How do you engage with customers on social media? Examples: Regular posts, responding to comments, social media campaigns.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not actively engage with customers on social media.", points: 0 },
{ name: "We post updates occasionally but do not interact much with customers.", points: 5 },
{ name: "We regularly post updates and respond to customer inquiries.", points: 8 },
{ name: "We have a proactive social media strategy with regular updates, customer interaction, and engagement campaigns.", points: 10 }
]
},
{
questionName: "Can you provide examples of user-generated content or collaborations with digital influencers? Examples: Hashtag campaigns, influencer takeovers, user reviews.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not have user-generated content or influencer collaborations.", points: 0 },
{ name: "We occasionally feature user-generated content.", points: 5 },
{ name: "We actively encourage user-generated content and collaborate with influencers.", points: 8 },
{ name: "We have established partnerships with influencers and regularly feature user-generated content.", points: 10 }
]
}
]
},
{
subCategoryName: "Social Responsibility",
displayOrder: 2,
questions: [
{
questionName: "What ethical business practices do you follow? Examples: Fair trade, ethical sourcing, transparency in pricing.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not have specific ethical business practices.", points: 0 },
{ name: "We follow basic ethical guidelines.", points: 5 },
{ name: "We have a formal code of ethics and conduct regular training.", points: 8 },
{ name: "We are recognized for our ethical practices and have won awards or certifications.", points: 10 },
{ name: "Not applicable.", points: 0 }
]
},
{
questionName: "Are you involved in any social causes? Can you provide examples? Examples: Charity partnerships, community service, environmental initiatives.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We are not involved in any social causes.", points: 0 },
{ name: "We occasionally support social causes through donations.", points: 5 },
{ name: "We actively participate in and support various social causes.", points: 8 },
{ name: "We lead initiatives and projects that contribute to significant social change.", points: 10 }]
},
{
questionName: "How do you ensure transparency in your operations? Examples: Regular reports, open communication channels, financial disclosures.",
maxPoints: 10,
displayOrder: 3,
answers: [
{ name: "We do not have specific transparency practices.", points: 0 },
{ name: "We provide basic transparency through occasional reports.", points: 5 },
{ name: "We regularly publish detailed reports on our operations and practices.", points: 8 },
{ name: "We have an open-door policy and publish comprehensive transparency reports regularly.", points: 10 }]
},
]
},
]
},
{
categoryName: "Quality",
displayOrder: 4,
subCategories: [
{
subCategoryName: "Service Excellence",
displayOrder: 1,
questions: [
{
questionName: "How do you ensure high standards of customer service? Examples: Customer service training programs, performance reviews, guest feedback mechanisms.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not have specific customer service standards.", points: 0 },
{ name: "We provide basic customer service training to our staff.", points: 5 },
{ name: "We have a comprehensive customer service training program and regular performance reviews.", points: 8 },
{ name: "We have a rigorous customer service program with ongoing training and feedback mechanisms.", points: 10 }
]
},
{
questionName: "Can you provide examples of how you handle customer feedback and complaints? Examples: Feedback forms, complaint resolution processes, guest satisfaction surveys.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not have a formal process for handling feedback and complaints.", points: 0 },
{ name: "We address complaints as they arise but do not track them systematically.", points: 5 },
{ name: "We have a formal process for handling and resolving complaints.", points: 8 },
{ name: "We use customer feedback to continually improve our services and have a dedicated team for managing complaints.", points: 10 }
]
},
{
questionName: "How do you train your staff to maintain professionalism and responsiveness? Examples: Training sessions, workshops, role-playing exercises.",
maxPoints: 10,
displayOrder: 3,
answers: [
{ name: "We do not provide specific training for professionalism and responsiveness.", points: 0 },
{ name: "We offer basic training during onboarding.", points: 5 },
{ name: "We provide regular training sessions and workshops on professionalism and customer interaction.", points: 8 },
{ name: "We have an extensive training program with continuous development and performance monitoring.", points: 10 },
{ name: "Not applicable.", points: 0 }
]
}
]
},
{
subCategoryName: "Unique and Authentic Experiences",
displayOrder: 2,
questions: [
{
questionName: "What unique and culturally immersive experiences do you offer? Examples: Traditional cooking classes, local craft workshops, cultural tours.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We offer standard tourist activities.", points: 0 },
{ name: "We provide some unique experiences with limited cultural relevance.", points: 5 },
{ name: "We offer a variety of culturally immersive activities.", points: 8 },
{ name: "We provide highly unique and authentic experiences deeply rooted in local culture.", points: 10 },
{ name: "Not applicable.", points: 0 }
]
},
{
questionName: "How do you ensure these experiences are authentic and reflective of local culture? Examples: Collaborating with local communities, employing local guides, using local materials.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not have specific measures to ensure authenticity.", points: 0 },
{ name: "We occasionally collaborate with local experts.", points: 5 },
{ name: "We work closely with local communities to design our experiences.", points: 8 },
{ name: "We ensure all experiences are co-created with local residents and cultural experts.", points: 10 }]
}
]
},
]
},
//--------------------------
// Accessibility for PWD
//--------------------------
{
categoryName: "Accessibility for PWD",
displayOrder: 5,
subCategories: [
{
subCategoryName: "Physical Accessibility",
displayOrder: 1,
questions: [
{
questionName: "What facilities do you have in place to ensure accessibility for people with disabilities? Examples: Wheelchair ramps, elevators, accessible restrooms.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not have specific accessibility features.", points: 0 },
{ name: "We have basic accessibility features like ramps.", points: 5 },
{ name: "We have multiple accessibility features, including ramps and accessible restrooms.", points: 8 },
{ name: "We have comprehensive accessibility facilities, including ramps, elevators, and accessible restrooms.", points: 10 }
]
},
{
questionName: "How do you ensure all areas of your property are accessible? Examples: Accessibility audits, staff training, guest feedback.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not have specific measures to ensure accessibility.", points: 0 },
{ name: "We provide basic accessibility in some areas.", points: 5 },
{ name: "We have an accessibility plan and ensure most areas are accessible.", points: 8 },
{ name: "We regularly audit and update our facilities to ensure complete accessibility.", points: 10 }
]
}
]
},
{
subCategoryName: "Support Services",
displayOrder: 2,
questions: [
{
questionName: "Do you have staff trained to assist people with disabilities? What kind of training do they receive? Examples: Training in disability awareness, assistance techniques, sign language.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not have trained staff.", points: 0 },
{ name: "Some staff have basic training in assisting people with disabilities.", points: 5 },
{ name: "We provide regular training for staff on assisting people with disabilities.", points: 8 },
{ name: "All staff receive comprehensive and ongoing training to assist people with disabilities.", points: 10 },
]
},
{
questionName: "Do you provide information in accessible formats? Can you provide examples? Examples: Braille menus, large print guides, audio descriptions.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not provide information in accessible formats.", points: 0 },
{ name: "We provide some information in accessible formats upon request.", points: 5 },
{ name: "We have a range of information available in accessible formats.", points: 8 },
{ name: "We ensure all critical information is available in multiple accessible formats.", points: 10 }]
}
]
},
{
subCategoryName: "Staff Training",
displayOrder: 2,
questions: [
{
questionName: "How often do you conduct safety training and drills? Examples: Annual training sessions, quarterly drills, surprise inspections.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not conduct regular safety training or drills.", points: 0 },
{ name: "We conduct safety training and drills occasionally.", points: 5 },
{ name: "We conduct safety training and drills annually.", points: 8 },
{ name: "We conduct safety training and drills multiple times a year.", points: 10 },
{ name: "Not applicable.", points: 0 },
]
}
]
},
]
},
//--------------------
// Cultural Sensitivity and Inclus
//--------------------
{
categoryName: "Cultural Sensitivity and Inclus",
displayOrder: 6,
subCategories: [
{
subCategoryName: "Cultural Sensitivity",
displayOrder: 1,
questions: [
{
questionName: "How do you ensure your experiences are culturally sensitive and respectful? Examples: Consulting with local communities, training staff on cultural etiquette.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not have specific measures for cultural sensitivity.", points: 0 },
{ name: "We occasionally review our activities for cultural sensitivity.", points: 5 },
{ name: "We consult with local communities to ensure our activities are culturally respectful.", points: 8 },
{ name: "We have a dedicated cultural sensitivity program and collaborate closely with cultural experts and local communities.", points: 10 }
]
},
{
questionName: "What measures do you take to ensure your experiences are inclusive for all guests, regardless of background? Examples: Diverse representation in marketing, inclusive language, accommodating dietary restrictions.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not have specific measures for inclusivity.", points: 0 },
{ name: "We strive to be inclusive but do not have formal measures.", points: 5 },
{ name: "We have policies to ensure inclusivity and regularly review them.", points: 8 },
{ name: "We actively promote inclusivity through dedicated programs and partnerships with relevant organizations.", points: 10 }
]
}
]
},
{
subCategoryName: "Acceptance of Diversity",
displayOrder: 2,
questions: [
{
questionName: "Do you accept, accommodate and welcome travelers from different races, religions, and nationalities without restrictions?",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "No, travelers from diverse backgrounds are not accepted or welcomed.", points: 0 },
{ name: "Some travelers from diverse backgrounds are accepted, but there are limited accommodations or considerations.", points: 5 },
{ name: "Travelers from diverse backgrounds are welcomed and accommodated with some specific considerations in place.", points: 8 },
{ name: "Travelers from all diverse racial, religious, and national backgrounds are actively welcomed and fully accommodated without any restrictions.", points: 10 },
]
},
]
},
]
},
//------------------------
// Health and Hygiene Standards
//------------------------
{
categoryName: "Health and Hygiene Standards",
displayOrder: 7,
subCategories: [
{
subCategoryName: "Hygiene Practices",
displayOrder: 1,
questions: [
{
questionName: "What hygiene practices do you follow to ensure the safety of your guests? Examples: Regular cleaning schedules, sanitation stations, health checks.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not have specific hygiene practices.", points: 0 },
{ name: "We follow basic hygiene practices such as regular cleaning.", points: 5 },
{ name: "We have comprehensive hygiene protocols and conduct regular audits.", points: 8 },
{ name: "We follow strict hygiene standards and have obtained relevant certifications such as ISO 22000 or similar.", points: 10 }
]
},
{
questionName: "How do you handle health emergencies and ensure the well-being of your guests? Examples: On-site medical kits, partnerships with local healthcare providers, emergency response training.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not have specific health emergency procedures.", points: 0 },
{ name: "We have basic first aid kits and contact information for local healthcare providers.", points: 5 },
{ name: "We have trained staff and partnerships with healthcare providers for emergencies.", points: 8 },
{ name: "We have comprehensive health emergency plans, including on-site medical staff and regular training.", points: 10 }
]
}
]
},
{
subCategoryName: "Availability of First Aid Kits",
displayOrder: 2,
questions: [
{
questionName: "Do you provide readily accessible and fully stocked first aid kits at your establishment? Examples: First aid kits placed in reception areas, near activity zones, or in guest rooms.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "No first aid kits are available on-site.", points: 0 },
{ name: "First aid kits are available but may not be fully stocked or easily accessible.", points: 5 },
{ name: "Fully stocked first aid kits are available in key locations but are not regularly checked.", points: 8 },
{ name: "Fully stocked and regularly inspected first aid kits are readily available in all necessary areas.", points: 10 },
]
},
]
},
{
subCategoryName: "Emergency Response Equipment",
displayOrder: 3,
questions: [
{
questionName: "Do you have emergency response equipment such as a trolley, stretcher, or cart to carry an injured person in case of an emergency? Examples: A stretcher stored near the pool area or a cart available in event spaces.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "No emergency response equipment is available.", points: 0 },
{ name: "Basic emergency response equipment is available but may not include a trolley, stretcher, or cart.", points: 5 },
{ name: "Emergency response equipment, including a trolley, stretcher, or cart, is available but not always maintained or easily accessible.", points: 8 },
{ name: "Comprehensive emergency response equipment, including a well-maintained trolley, stretcher, or cart, is available and easily accessible.", points: 10 },
]
},
]
},
{
subCategoryName: "Staff Training in First Aid and Emergency Response",
displayOrder: 4,
questions: [
{
questionName: "Are your staff trained in first aid and emergency response procedures, including the use of equipment like stretchers or carts? Examples: Staff trained to use a stretcher during an evacuation or first aid training that includes the use of a defibrillator.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "No staff members are trained in first aid or emergency response.", points: 0 },
{ name: "Some staff members have basic first aid training, but not all are trained in emergency response.", points: 5 },
{ name: "Most staff members are trained in first aid and basic emergency response, including how to use stretchers or carts.", points: 8 },
{ name: "All staff members are thoroughly trained in first aid and emergency response, with regular drills and training on using all emergency equipment, including stretchers or carts.", points: 10 },
]
},
]
},
{
subCategoryName: "Emergency Medical Contacts",
displayOrder: 5,
questions: [
{
questionName: "Do you have established contacts with local emergency medical services, and are these details readily available to staff and guests? Exammples: Emergency numbers posted at reception or in guest information booklets.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "No emergency medical contacts are available.", points: 0 },
{ name: "Emergency medical contacts are available but not readily accessible to all staff and guests.", points: 5 },
{ name: "Emergency medical contacts are available and accessible, but staff may not be fully aware of how to use them.", points: 8 },
{ name: "Comprehensive emergency medical contacts are readily available to all staff and guests, with staff fully trained on how to use them.", points: 10 },
]
},
]
},
{
subCategoryName: "Staff Training",
displayOrder: 5,
questions: [
{
questionName: "What health safety training do your staff receive? Examples: First aid certification, CPR training, safety drills.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "Our staff do not receive formal safety training.", points: 0 },
{ name: "Some staff have basic first aid training.", points: 5 },
{ name: "Most staff are trained in first aid and CPR.", points: 8 },
{ name: "All staff are thoroughly trained in first aid, CPR, and other relevant safety protocols.", points: 10 },
{ name: "Not applicable.", points: 0 },
]
},
]
},
]
},
//-------------------
//Language Proficiency
//-------------------
{
categoryName: "Language Proficiency",
displayOrder: 8,
subCategories: [
{
subCategoryName: "English Language Proficiency",
displayOrder: 1,
questions: [
{
questionName: "What level of English language proficiency do your staff members have? Examples: Basic conversation, fluent communication, professional proficiency.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "Most staff do not speak English.", points: 0 },
{ name: "Some staff have basic English skills.", points: 5 },
{ name: "Most staff are fluent in English and can communicate effectively with guests.", points: 8 },
{ name: "All staff are highly proficient in English, with some having professional training in English communication.", points: 10 }
]
},
{
questionName: "Do you provide English language training for your staff? Examples: Regular English classes, language improvement programs, online courses.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not provide English language training.", points: 0 },
{ name: "We offer occasional English language training sessions.", points: 5 },
{ name: "We provide regular and structured English language training programs.", points: 8 },
{ name: "We have a comprehensive English language training program, including professional development courses.", points: 10 },
{ name: "Not applicable.", points: 0 }
]
}
]
},
]
},
//--------------------
//Hospitality Training
//--------------------
{
categoryName: "Hospitality Training",
displayOrder: 9,
subCategories: [
{
subCategoryName: "Staff Training",
displayOrder: 1,
questions: [
{
questionName: "What hospitality training do your staff receive? Examples: Customer service training, hospitality management courses, on-the-job training.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "Our staff do not receive formal hospitality training.", points: 0 },
{ name: "We provide basic hospitality training during onboarding.", points: 5 },
{ name: "We offer regular and advanced hospitality training programs for our staff.", points: 8 },
{ name: "Our staff undergo extensive and ongoing hospitality training, including certification courses.", points: 10 },
{ name: "Not applicable.", points: 0 }
]
},
{
questionName: "Can you provide examples of how you ensure continuous improvement in hospitality skills for your staff? Examples: Workshops, seminars, performance evaluations, feedback sessions.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not have specific measures for continuous improvement in hospitality skills.", points: 0 },
{ name: "We occasionally conduct workshops and feedback sessions.", points: 5 },
{ name: "We have a structured program for continuous improvement, including regular workshops and evaluations.", points: 8 },
{ name: "We have a comprehensive system for continuous improvement, with frequent training sessions, performance evaluations, and feedback integration.", points: 10 },
{ name: "Not applicable.", points: 0 }
]
}
]
},
]
},
//----------------------
//Other Critical Parameters
//----------------------
{
categoryName: "Other Critical Parameters",
displayOrder: 10,
subCategories: [
{
subCategoryName: "Legal Compliance",
displayOrder: 1,
questions: [
{
questionName: "Are you compliant with all applicable local, national, and international laws and regulations? Can you provide documentation to support this? Examples: Business licenses, health and safety certifications, regulatory audits.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not have specific measures for compliance.", points: 0 },
{ name: "We ensure basic compliance with local laws.", points: 5 },
{ name: "We are compliant with local and national laws and have documentation.", points: 8 },
{ name: "We are fully compliant with all relevant laws and regulations and can provide extensive documentation.", points: 10 },
]
}
]
},
{
subCategoryName: "Customer Support and Communication",
displayOrder: 2,
questions: [
{
questionName: "How do you ensure high-quality customer support before, during, and after the experience? Examples: 24/7 support lines, dedicated customer service teams, follow-up surveys.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We do not have a formal customer support system.", points: 0 },
{ name: "We provide basic customer support during the experience.", points: 5 },
{ name: "We offer comprehensive support before, during, and after the experience.", points: 8 },
{ name: "We have a dedicated customer support team available 24/7 across multiple channels.", points: 10 },
]
},
{
questionName: "Can you provide examples of how you handle customer inquiries and issues? Examples: Ticketing system, feedback forms, resolution timelines.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not have a specific process for handling inquiries and issues.", points: 0 },
{ name: "We handle inquiries and issues as they arise but do not track them systematically.", points: 5 },
{ name: "We have a formal process for managing customer inquiries and issues.", points: 8 },
{ name: "We have a dedicated system for tracking, managing, and resolving customer inquiries and issues efficiently.", points: 10 },
]
},
]
},
{
subCategoryName: "Innovative Offerings",
displayOrder: 3,
questions: [
{
questionName: "What innovative or trending activities have you introduced recently? Examples: VR experiences, eco-tours, wellness retreats.",
maxPoints: 10,
displayOrder: 1,
answers: [
{ name: "We have not introduced any new activities recently.", points: 0 },
{ name: "We occasionally introduce new activities.", points: 5 },
{ name: "We regularly introduce innovative and trending activities.", points: 8 },
{ name: "We are known for pioneering new trends and constantly updating our offerings.", points: 10 },
]
},
{
questionName: "How do you stay updated with the latest trends and customer preferences? Examples: Trend analysis, customer surveys, industry conferences.",
maxPoints: 10,
displayOrder: 2,
answers: [
{ name: "We do not actively monitor trends.", points: 0 },
{ name: "We occasionally review trends and customer feedback.", points: 5 },
{ name: "We have a process for regularly reviewing trends and customer preferences.", points: 8 },
{ name: "We have a dedicated team for trend analysis and customer insights, ensuring our offerings are always up-to-date.", points: 10 },
]
},
]
},
]
},
];
await prisma.pQQAnswers.deleteMany();
await prisma.pQQQuestions.deleteMany();
await prisma.pQQSubCategories.deleteMany();
await prisma.pQQCategories.deleteMany();
for (const category of categoriesData) {
await prisma.pQQCategories.upsert({
where: { categoryName: category.categoryName },
update: {},
create: {
categoryName: category.categoryName,
displayOrder: category.displayOrder,
isActive: true,
pqqsubCategories: {
create: category.subCategories.map((sub) => ({
subCategoryName: sub.subCategoryName,
displayOrder: sub.displayOrder,
isActive: true,
questions: {
create: sub.questions.map((q) => ({
questionName: q.questionName,
maxPoints: q.maxPoints,
displayOrder: q.displayOrder,
PQQAnswers: {
create: q.answers.map((ans, i) => ({
answerName: ans.name,
answerPoints: ans.points,
displayOrder: i + 1
}))
}
}))
}
}))
}
}
});
}
console.log('✅ Seed data inserted successfully!');
}
main()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});