Files
Montech_Landing/apps/api/prisma/schema.prisma
T
MahdiandCursor 7e8e1b1f1b Initial Montech monorepo: Nuxt landing, Vue admin, Nest API.
Scaffold SSR site with CMS/blog/gallery/SEO admin and deploy configs for montech.ir.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-30 18:42:28 +03:30

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())
}