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>
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
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())
|
||||
}
|
||||
Reference in New Issue
Block a user