2026-03-12 14:15:44 +05:30
|
|
|
generator client {
|
|
|
|
|
provider = "prisma-client-js"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
datasource db {
|
|
|
|
|
provider = "postgresql"
|
|
|
|
|
url = env("DATABASE_URL")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model User {
|
2026-03-16 10:16:27 +05:30
|
|
|
id Int @id @default(autoincrement())
|
|
|
|
|
username String @unique
|
|
|
|
|
password String
|
|
|
|
|
role String? @default("admin")
|
2026-03-12 14:15:44 +05:30
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model Doctor {
|
2026-03-16 10:16:27 +05:30
|
|
|
id Int @id @default(autoincrement())
|
|
|
|
|
doctorId String @unique
|
2026-03-12 14:15:44 +05:30
|
|
|
name String
|
2026-04-14 17:33:21 +05:30
|
|
|
image String?
|
2026-03-12 14:15:44 +05:30
|
|
|
designation String?
|
2026-05-20 10:15:53 +05:30
|
|
|
experience Int?
|
2026-03-12 14:15:44 +05:30
|
|
|
workingStatus String?
|
|
|
|
|
qualification String?
|
2026-05-11 00:04:22 +05:30
|
|
|
isActive Boolean @default(true)
|
|
|
|
|
globalSortOrder Int @default(1000)
|
2026-05-20 10:15:53 +05:30
|
|
|
specializations DoctorSpecialization[]
|
|
|
|
|
professionalSummary String? @db.Text
|
|
|
|
|
seoId Int? @unique
|
|
|
|
|
seo Seo? @relation(fields: [seoId], references: [id])
|
2026-03-16 10:16:27 +05:30
|
|
|
departments DoctorDepartment[]
|
|
|
|
|
appointments Appointment[]
|
2026-03-12 14:15:44 +05:30
|
|
|
|
2026-03-16 10:16:27 +05:30
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
2026-03-12 14:15:44 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model Department {
|
2026-03-16 10:16:27 +05:30
|
|
|
id Int @id @default(autoincrement())
|
|
|
|
|
departmentId String @unique
|
|
|
|
|
name String
|
2026-04-14 17:33:21 +05:30
|
|
|
image String?
|
|
|
|
|
|
2026-03-12 14:15:44 +05:30
|
|
|
|
2026-03-16 10:16:27 +05:30
|
|
|
para1 String?
|
|
|
|
|
para2 String?
|
|
|
|
|
para3 String?
|
|
|
|
|
facilities String?
|
|
|
|
|
services String?
|
2026-03-12 14:15:44 +05:30
|
|
|
|
2026-05-11 00:04:22 +05:30
|
|
|
isActive Boolean @default(true)
|
|
|
|
|
sortOrder Int @default(1000)
|
|
|
|
|
|
2026-03-16 10:16:27 +05:30
|
|
|
doctors DoctorDepartment[]
|
|
|
|
|
appointments Appointment[]
|
2026-03-12 14:15:44 +05:30
|
|
|
|
2026-03-16 10:16:27 +05:30
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
2026-03-12 14:15:44 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model DoctorDepartment {
|
2026-03-16 10:16:27 +05:30
|
|
|
id Int @id @default(autoincrement())
|
2026-03-12 14:15:44 +05:30
|
|
|
|
2026-03-16 10:16:27 +05:30
|
|
|
doctorId Int
|
|
|
|
|
departmentId Int
|
2026-03-12 14:15:44 +05:30
|
|
|
|
2026-03-16 10:16:27 +05:30
|
|
|
doctor Doctor @relation(fields: [doctorId], references: [id])
|
|
|
|
|
department Department @relation(fields: [departmentId], references: [id])
|
2026-05-11 00:04:22 +05:30
|
|
|
sortOrder Int @default(1000)
|
2026-03-16 10:16:27 +05:30
|
|
|
timing DoctorTiming?
|
2026-03-12 14:15:44 +05:30
|
|
|
|
2026-03-16 10:16:27 +05:30
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
2026-03-12 14:15:44 +05:30
|
|
|
|
|
|
|
|
@@unique([doctorId, departmentId])
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model DoctorTiming {
|
2026-03-16 10:16:27 +05:30
|
|
|
id Int @id @default(autoincrement())
|
2026-03-12 14:15:44 +05:30
|
|
|
|
2026-03-16 10:16:27 +05:30
|
|
|
doctorDepartmentId Int @unique
|
|
|
|
|
doctorDepartment DoctorDepartment @relation(fields: [doctorDepartmentId], references: [id])
|
|
|
|
|
|
|
|
|
|
monday String?
|
|
|
|
|
tuesday String?
|
|
|
|
|
wednesday String?
|
|
|
|
|
thursday String?
|
|
|
|
|
friday String?
|
|
|
|
|
saturday String?
|
|
|
|
|
sunday String?
|
|
|
|
|
additional String?
|
|
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
|
}
|
2026-03-12 14:15:44 +05:30
|
|
|
|
|
|
|
|
model Blog {
|
2026-03-16 10:16:27 +05:30
|
|
|
id Int @id @default(autoincrement())
|
|
|
|
|
title String
|
|
|
|
|
writer String?
|
|
|
|
|
image String?
|
|
|
|
|
content Json
|
|
|
|
|
isActive Boolean @default(true)
|
2026-04-14 15:25:20 +05:30
|
|
|
slug String @unique
|
2026-03-12 14:15:44 +05:30
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
2026-03-13 14:54:47 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model Career {
|
2026-03-16 10:16:27 +05:30
|
|
|
id Int @id @default(autoincrement())
|
2026-03-13 14:54:47 +05:30
|
|
|
post String
|
|
|
|
|
designation String?
|
|
|
|
|
qualification String?
|
|
|
|
|
experienceNeed String?
|
|
|
|
|
email String?
|
|
|
|
|
number String?
|
2026-03-16 10:16:27 +05:30
|
|
|
status String @default("new")
|
2026-05-11 00:04:22 +05:30
|
|
|
isActive Boolean @default(true)
|
|
|
|
|
sortOrder Int @default(1000)
|
2026-03-16 10:16:27 +05:30
|
|
|
candidates Candidate[]
|
2026-03-13 16:26:06 +05:30
|
|
|
|
2026-03-16 10:16:27 +05:30
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
2026-03-13 16:26:06 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model Candidate {
|
2026-03-16 10:16:27 +05:30
|
|
|
id Int @id @default(autoincrement())
|
|
|
|
|
fullName String
|
|
|
|
|
mobile String
|
|
|
|
|
email String
|
|
|
|
|
subject String
|
|
|
|
|
coverLetter String
|
|
|
|
|
careerId Int
|
|
|
|
|
|
|
|
|
|
career Career @relation(fields: [careerId], references: [id])
|
|
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
2026-03-13 16:26:06 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model Appointment {
|
2026-03-16 10:16:27 +05:30
|
|
|
id Int @id @default(autoincrement())
|
2026-03-13 16:26:06 +05:30
|
|
|
|
2026-03-16 10:16:27 +05:30
|
|
|
name String
|
|
|
|
|
mobileNumber String
|
|
|
|
|
email String?
|
|
|
|
|
message String?
|
|
|
|
|
date DateTime
|
2026-03-13 16:26:06 +05:30
|
|
|
|
2026-03-16 10:16:27 +05:30
|
|
|
doctorId String
|
|
|
|
|
departmentId String
|
2026-03-13 16:26:06 +05:30
|
|
|
|
2026-03-16 10:16:27 +05:30
|
|
|
doctor Doctor @relation(fields: [doctorId], references: [doctorId])
|
|
|
|
|
department Department @relation(fields: [departmentId], references: [departmentId])
|
2026-03-13 16:26:06 +05:30
|
|
|
|
2026-03-16 10:16:27 +05:30
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
|
}
|
2026-03-16 12:39:41 +05:30
|
|
|
|
|
|
|
|
model Inquiry {
|
2026-04-14 15:25:20 +05:30
|
|
|
id Int @id @default(autoincrement())
|
2026-03-16 12:39:41 +05:30
|
|
|
|
2026-04-14 15:25:20 +05:30
|
|
|
fullName String
|
|
|
|
|
number String
|
|
|
|
|
emailId String?
|
|
|
|
|
subject String?
|
|
|
|
|
message String?
|
2026-03-16 12:39:41 +05:30
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model AcademicsResearch {
|
2026-04-14 15:25:20 +05:30
|
|
|
id Int @id @default(autoincrement())
|
2026-03-16 12:39:41 +05:30
|
|
|
|
|
|
|
|
fullName String
|
|
|
|
|
number String
|
|
|
|
|
emailId String?
|
|
|
|
|
subject String?
|
|
|
|
|
courseName String?
|
|
|
|
|
message String?
|
|
|
|
|
|
2026-04-14 15:25:20 +05:30
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
2026-03-19 13:12:04 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model EmailConfig {
|
2026-04-14 15:25:20 +05:30
|
|
|
id Int @id @default(autoincrement())
|
|
|
|
|
name String
|
|
|
|
|
email String
|
|
|
|
|
type String
|
|
|
|
|
isActive Boolean @default(true)
|
2026-03-19 13:12:04 +05:30
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
2026-03-25 17:59:36 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model NewsMedia {
|
2026-04-14 15:25:20 +05:30
|
|
|
id Int @id @default(autoincrement())
|
2026-03-25 17:59:36 +05:30
|
|
|
|
|
|
|
|
headline String
|
|
|
|
|
content String?
|
|
|
|
|
firstPara String?
|
|
|
|
|
secondPara String?
|
|
|
|
|
author String?
|
|
|
|
|
date DateTime?
|
2026-04-14 17:33:21 +05:30
|
|
|
images NewsImage[]
|
2026-03-25 17:59:36 +05:30
|
|
|
|
|
|
|
|
isActive Boolean @default(true)
|
2026-04-14 17:33:21 +05:30
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
|
}
|
2026-03-25 17:59:36 +05:30
|
|
|
|
2026-04-14 17:33:21 +05:30
|
|
|
model NewsImage {
|
|
|
|
|
id Int @id @default(autoincrement())
|
|
|
|
|
url String
|
|
|
|
|
newsMediaId Int
|
|
|
|
|
newsMedia NewsMedia @relation(fields: [newsMediaId], references: [id], onDelete: Cascade)
|
|
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
2026-04-14 15:25:20 +05:30
|
|
|
}
|
2026-05-15 17:46:52 +05:30
|
|
|
|
|
|
|
|
model HealthCheckCategory {
|
|
|
|
|
id Int @id @default(autoincrement())
|
|
|
|
|
name String @unique
|
2026-05-18 10:58:14 +05:30
|
|
|
slug String? @unique
|
2026-05-15 17:46:52 +05:30
|
|
|
description String?
|
|
|
|
|
isActive Boolean @default(true)
|
|
|
|
|
sortOrder Int @default(1000)
|
|
|
|
|
|
|
|
|
|
packages HealthPackage[]
|
|
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model HealthPackage {
|
|
|
|
|
id Int @id @default(autoincrement())
|
|
|
|
|
name String
|
|
|
|
|
slug String @unique
|
|
|
|
|
description String?
|
|
|
|
|
price Decimal? @db.Decimal(10, 2)
|
2026-05-18 11:55:55 +05:30
|
|
|
image String?
|
2026-05-15 17:46:52 +05:30
|
|
|
discountedPrice Decimal? @db.Decimal(10, 2)
|
|
|
|
|
|
|
|
|
|
inclusions Json @default("{}")
|
|
|
|
|
|
|
|
|
|
isActive Boolean @default(true)
|
|
|
|
|
isFeatured Boolean @default(false)
|
|
|
|
|
sortOrder Int @default(1000)
|
|
|
|
|
|
|
|
|
|
categoryId Int
|
|
|
|
|
category HealthCheckCategory @relation(fields: [categoryId], references: [id])
|
|
|
|
|
|
|
|
|
|
inquiries HealthPackageInquiry[]
|
|
|
|
|
|
2026-05-26 11:56:22 +05:30
|
|
|
seoId Int? @unique
|
|
|
|
|
seo Seo? @relation(fields: [seoId], references: [id])
|
|
|
|
|
|
2026-05-15 17:46:52 +05:30
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model HealthPackageInquiry {
|
|
|
|
|
id Int @id @default(autoincrement())
|
|
|
|
|
fullName String
|
|
|
|
|
mobileNumber String
|
|
|
|
|
email String?
|
|
|
|
|
age Int?
|
|
|
|
|
gender String?
|
|
|
|
|
preferredDate DateTime?
|
|
|
|
|
message String?
|
|
|
|
|
|
|
|
|
|
packageId Int
|
|
|
|
|
healthPackage HealthPackage @relation(fields: [packageId], references: [id])
|
|
|
|
|
|
|
|
|
|
status String @default("pending")
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
|
}
|
2026-05-20 10:15:53 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
model DoctorSpecialization {
|
|
|
|
|
id Int @id @default(autoincrement())
|
|
|
|
|
name String
|
|
|
|
|
description String? @db.Text
|
|
|
|
|
doctorId Int
|
|
|
|
|
doctor Doctor @relation(fields: [doctorId],references: [id],onDelete: Cascade)
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model Seo {
|
|
|
|
|
id Int @id @default(autoincrement())
|
2026-05-26 11:56:22 +05:30
|
|
|
doctor Doctor?
|
|
|
|
|
healthPackage HealthPackage?
|
|
|
|
|
|
2026-05-20 10:15:53 +05:30
|
|
|
|
|
|
|
|
seoTitle String?
|
|
|
|
|
metaDescription String? @db.Text
|
|
|
|
|
focusKeyphrase String?
|
|
|
|
|
slug String? @unique
|
|
|
|
|
tags String[]
|
|
|
|
|
|
|
|
|
|
ogTitle String?
|
|
|
|
|
ogDescription String? @db.Text
|
|
|
|
|
ogImage String?
|
|
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
2026-06-15 09:30:19 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model HomepageBanner {
|
|
|
|
|
id Int @id @default(autoincrement())
|
|
|
|
|
|
|
|
|
|
title String?
|
|
|
|
|
subtitle String?
|
|
|
|
|
|
|
|
|
|
mediaType BannerMediaType
|
|
|
|
|
|
|
|
|
|
desktopMediaUrl String
|
|
|
|
|
mobileMediaUrl String?
|
|
|
|
|
|
|
|
|
|
buttonText String?
|
|
|
|
|
buttonLink String?
|
|
|
|
|
|
|
|
|
|
openInNewTab Boolean @default(false)
|
|
|
|
|
|
|
|
|
|
textAlignment String? @default("left")
|
|
|
|
|
|
|
|
|
|
sortOrder Int @default(1000)
|
|
|
|
|
isActive Boolean @default(true)
|
|
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
enum BannerMediaType {
|
|
|
|
|
IMAGE
|
|
|
|
|
VIDEO
|
2026-05-20 10:15:53 +05:30
|
|
|
}
|