Scaffold SSR site with CMS/blog/gallery/SEO admin and deploy configs for montech.ir. Co-authored-by: Cursor <cursoragent@cursor.com>
96 lines
2.3 KiB
Plaintext
96 lines
2.3 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model Admin {
|
|
id String @id @default(cuid())
|
|
mobile String @unique
|
|
email String? @unique
|
|
passwordHash String
|
|
name String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model SiteSettings {
|
|
id String @id @default("default")
|
|
brandName String @default("Montech")
|
|
tagline String @default("Software Development Group")
|
|
email String @default("hello@montech.ir")
|
|
phone String @default("+98 21 0000 0000")
|
|
address String @default("Tehran, IR")
|
|
timezone String @default("Asia/Tehran")
|
|
socials Json @default("[]")
|
|
logoUrl String?
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Page {
|
|
id String @id @default(cuid())
|
|
key String @unique
|
|
title String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
seo PageSeo?
|
|
}
|
|
|
|
model PageSeo {
|
|
id String @id @default(cuid())
|
|
pageId String @unique
|
|
page Page @relation(fields: [pageId], references: [id], onDelete: Cascade)
|
|
title String
|
|
description String @default("")
|
|
ogImage String?
|
|
canonical String?
|
|
noIndex Boolean @default(false)
|
|
}
|
|
|
|
model SectionContent {
|
|
id String @id @default(cuid())
|
|
key String @unique
|
|
data Json
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model BlogPost {
|
|
id String @id @default(cuid())
|
|
slug String @unique
|
|
title String
|
|
excerpt String @default("")
|
|
content String @default("")
|
|
coverUrl String?
|
|
published Boolean @default(false)
|
|
publishedAt DateTime?
|
|
seoTitle String?
|
|
seoDesc String?
|
|
ogImage String?
|
|
canonical String?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model GalleryItem {
|
|
id String @id @default(cuid())
|
|
title String
|
|
imageUrl String
|
|
category String?
|
|
sortOrder Int @default(0)
|
|
published Boolean @default(true)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Media {
|
|
id String @id @default(cuid())
|
|
filename String
|
|
url String
|
|
mimeType String
|
|
size Int
|
|
createdAt DateTime @default(now())
|
|
}
|