made register and login apis for host
This commit is contained in:
6
prisma/prisma.ts
Normal file
6
prisma/prisma.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
export const prisma = new PrismaClient();
|
||||
process.on('SIGINT', async () => {
|
||||
await prisma.$disconnect();
|
||||
process.exit(0);
|
||||
});
|
||||
@@ -1,6 +1,6 @@
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
binaryTargets = ["native", "rhel-openssl-3.0.x"] // Add Linux target
|
||||
provider = "prisma-client-js"
|
||||
binaryTargets = ["native", "rhel-openssl-3.0.x"] // Add Linux target
|
||||
previewFeatures = ["multiSchema"]
|
||||
}
|
||||
|
||||
@@ -19,7 +19,8 @@ model User {
|
||||
emailAddress String @unique @map("email_address")
|
||||
isdCode String? @map("isd_code")
|
||||
mobileNumber String? @map("mobile_number")
|
||||
userPasscode String? @map("user_password")
|
||||
userPassword String? @map("user_password")
|
||||
userPasscode String? @map("user_passcode")
|
||||
isEmailVerfied Boolean? @default(false) @map("is_email_verified")
|
||||
isMobileVerfied Boolean? @default(false) @map("is_mobile_verified")
|
||||
isActive Boolean? @default(true) @map("is_active")
|
||||
|
||||
291
prisma/seed.ts
Normal file
291
prisma/seed.ts
Normal file
@@ -0,0 +1,291 @@
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
async function main() {
|
||||
// ✅ Countries
|
||||
const india = await prisma.countries.upsert({
|
||||
where: { countryName: 'India' },
|
||||
update: {},
|
||||
create: {
|
||||
countryName: 'India',
|
||||
countryCode: 'IN',
|
||||
countryFlag: '🇮🇳',
|
||||
isActive: true,
|
||||
},
|
||||
});
|
||||
|
||||
const usa = await prisma.countries.upsert({
|
||||
where: { countryName: 'United States' },
|
||||
update: {},
|
||||
create: {
|
||||
countryName: 'United States',
|
||||
countryCode: 'US',
|
||||
countryFlag: '🇺🇸',
|
||||
isActive: true,
|
||||
},
|
||||
});
|
||||
|
||||
// ✅ Currencies
|
||||
await prisma.currencies.createMany({
|
||||
data: [
|
||||
{ countryXid: india.id, currencyName: 'Indian Rupee', currencySymbol: '₹' },
|
||||
{ countryXid: usa.id, currencyName: 'US Dollar', currencySymbol: '$' },
|
||||
],
|
||||
skipDuplicates: true,
|
||||
});
|
||||
|
||||
// ✅ States
|
||||
const maharashtra = await prisma.states.upsert({
|
||||
where: { stateName: 'Maharashtra' },
|
||||
update: {},
|
||||
create: { countryXid: india.id, stateName: 'Maharashtra' },
|
||||
});
|
||||
|
||||
const california = await prisma.states.upsert({
|
||||
where: { stateName: 'California' },
|
||||
update: {},
|
||||
create: { countryXid: usa.id, stateName: 'California' },
|
||||
});
|
||||
|
||||
// ✅ Cities
|
||||
await prisma.cities.createMany({
|
||||
data: [
|
||||
{ stateXid: maharashtra.id, cityName: 'Mumbai' },
|
||||
{ stateXid: california.id, cityName: 'Los Angeles' },
|
||||
],
|
||||
skipDuplicates: true,
|
||||
});
|
||||
|
||||
// ✅ Taxes
|
||||
await prisma.taxes.createMany({
|
||||
data: [
|
||||
{ countryXid: india.id, taxName: 'GST', taxPer: 18 },
|
||||
{ countryXid: usa.id, taxName: 'VAT', taxPer: 10 },
|
||||
],
|
||||
skipDuplicates: true,
|
||||
});
|
||||
|
||||
// ✅ Banks
|
||||
const hdfc = await prisma.banks.upsert({
|
||||
where: { bankName: 'HDFC Bank' },
|
||||
update: {},
|
||||
create: { countryXid: india.id, bankName: 'HDFC Bank' },
|
||||
});
|
||||
|
||||
const chase = await prisma.banks.upsert({
|
||||
where: { bankName: 'Chase Bank' },
|
||||
update: {},
|
||||
create: { countryXid: usa.id, bankName: 'Chase Bank' },
|
||||
});
|
||||
|
||||
// ✅ 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: chase.id,
|
||||
stateXid: california.id,
|
||||
cityXid: (await prisma.cities.findFirst({ where: { cityName: 'Los Angeles' } }))!.id,
|
||||
branchAddress: 'Chase Downtown LA',
|
||||
ifscCode: 'CHASUS12345',
|
||||
},
|
||||
],
|
||||
skipDuplicates: true,
|
||||
});
|
||||
|
||||
// ✅ Interests + Activity Types
|
||||
const chillandzen = await prisma.interests.upsert({
|
||||
where: { interestName: 'Chill and Zen' },
|
||||
update: {},
|
||||
create: { interestName: 'Chill and Zen', displayOrder: 1 },
|
||||
});
|
||||
const sweatmode = await prisma.interests.upsert({
|
||||
where: { interestName: 'Sweat Mode' },
|
||||
update: {},
|
||||
create: { interestName: 'Sweat Mode', displayOrder: 2 },
|
||||
});
|
||||
const gameon = await prisma.interests.upsert({
|
||||
where: { interestName: 'Game On' },
|
||||
update: {},
|
||||
create: { interestName: 'Game On', displayOrder: 3 },
|
||||
});
|
||||
const partycentral = await prisma.interests.upsert({
|
||||
where: { interestName: 'Party Central' },
|
||||
update: {},
|
||||
create: { interestName: 'Party Central', displayOrder: 4 },
|
||||
});
|
||||
const artsy = await prisma.interests.upsert({
|
||||
where: { interestName: 'Artsy' },
|
||||
update: {},
|
||||
create: { interestName: 'Artsy', displayOrder: 5 },
|
||||
});
|
||||
const foodiediaries = await prisma.interests.upsert({
|
||||
where: { interestName: 'Foodie Diaries' },
|
||||
update: {},
|
||||
create: { interestName: 'Foodie Diaries', displayOrder: 6 },
|
||||
});
|
||||
|
||||
await prisma.activityTypes.createMany({
|
||||
data: [
|
||||
{ interestXid: chillandzen.id, activityTypeName: 'Cricket' },
|
||||
{ interestXid: chillandzen.id, activityTypeName: 'Football' },
|
||||
],
|
||||
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: 'Wi-Fi' },
|
||||
{ amenitiesName: 'Air Conditioner' },
|
||||
{ amenitiesName: 'Phone Charger' },
|
||||
{ amenitiesName: 'Mobile Network' },
|
||||
],
|
||||
skipDuplicates: true, // prevents error if already seeded
|
||||
});
|
||||
|
||||
// ✅ 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,
|
||||
});
|
||||
|
||||
// ✅ PQQ Categories + Questions + Answers
|
||||
const category = await prisma.pQQCategories.upsert({
|
||||
where: { categoryName: 'General' },
|
||||
update: {},
|
||||
create: {
|
||||
categoryName: 'General',
|
||||
subCategoryName: 'Basic',
|
||||
categoryTitle: 'General Information',
|
||||
displayOrder: 1,
|
||||
isActive: true,
|
||||
PQQQuestions: {
|
||||
create: [
|
||||
{
|
||||
questionName: 'Do you have insurance?',
|
||||
displayOrder: 1,
|
||||
PQQAnswers: {
|
||||
create: [
|
||||
{ answerName: 'Yes', answerScore: '10', displayOrder: 1 },
|
||||
{ answerName: 'No', answerScore: '0', displayOrder: 2 },
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
questionName: 'Do you have ISO certification?',
|
||||
displayOrder: 2,
|
||||
PQQAnswers: {
|
||||
create: [
|
||||
{ answerName: 'Yes', answerScore: '20', displayOrder: 1 },
|
||||
{ answerName: 'No', answerScore: '0', displayOrder: 2 },
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
include: { PQQQuestions: true },
|
||||
});
|
||||
|
||||
console.log('✅ Seed data inserted successfully!');
|
||||
}
|
||||
|
||||
main()
|
||||
.catch((e) => {
|
||||
console.error(e);
|
||||
process.exit(1);
|
||||
})
|
||||
.finally(async () => {
|
||||
await prisma.$disconnect();
|
||||
});
|
||||
Reference in New Issue
Block a user