Align seed, shared brand, and landing UI with the correct Montech Farsi name. Co-authored-by: Cursor <cursoragent@cursor.com>
245 lines
10 KiB
TypeScript
245 lines
10 KiB
TypeScript
import { PrismaClient } from "@prisma/client";
|
|
import * as bcrypt from "bcryptjs";
|
|
|
|
const prisma = new PrismaClient();
|
|
|
|
const defaultSections: Record<string, unknown> = {
|
|
hero: {
|
|
eyebrow: "گروه توسعه نرمافزار",
|
|
location: "[ تأسیس ۱۴۰۰ — تهران / دورکاری ]",
|
|
lines: ["ما نرمافزار", "میسازیم که", "عمل میکند"],
|
|
highlightWord: "نرمافزار",
|
|
body: "منتک یک تیم مهندسی ارشد است که پلتفرمهای وب، اپلیکیشن موبایل و زیرساخت ابری را برای کسبوکارهایی میسازد که نمیخواهند معمولی باشند.",
|
|
cta: "مشاهده نمونهکارها",
|
|
badge: "مهندسی منتک • از ۱۴۰۰ •",
|
|
coords: "تهران، ایران",
|
|
projectsLabel: "بیش از ۱۲۰ پروژه تحویلشده",
|
|
},
|
|
marquee: {
|
|
items: [
|
|
"پلتفرم وب",
|
|
"اپلیکیشن موبایل",
|
|
"ابرو DevOps",
|
|
"هوش مصنوعی",
|
|
"سیستم طراحی",
|
|
"معماری API",
|
|
],
|
|
},
|
|
manifesto: {
|
|
tag: "ما که هستیم",
|
|
words: [
|
|
{ text: "ما" },
|
|
{ text: "نرمافزاری" },
|
|
{ text: "میسازیم", volt: true },
|
|
{ text: "که" },
|
|
{ text: "تفاوت" },
|
|
{ text: "ایجاد" },
|
|
{ text: "کند." },
|
|
{ text: "منتک", volt: true },
|
|
],
|
|
body: "استراتژی، طراحی و مهندسی زیر یک سقف — با دقت وسواسگونه نسبت به کیفیت و عملکرد.",
|
|
},
|
|
services: {
|
|
tag: "چه میکنیم",
|
|
items: [
|
|
{
|
|
n: "۰۱",
|
|
title: "استراتژی محصول",
|
|
desc: "ایدههای مبهم را به نقشه راه معتبر تبدیل میکنیم. اسپرینت کشف، پژوهش کاربر و نمونهسازی سریع قبل از نوشتن کد.",
|
|
tags: ["کشف محصول", "پژوهش کاربر", "نقشه راه", "MVP"],
|
|
},
|
|
{
|
|
n: "۰۲",
|
|
title: "مهندسی وب",
|
|
desc: "پلتفرمهای وب سریع و مقیاسپذیر — از سایتهای بازاریابی تا داشبوردهای پیچیده SaaS.",
|
|
tags: ["Nuxt", "NestJS", "Node.js", "React"],
|
|
},
|
|
{
|
|
n: "۰۳",
|
|
title: "اپلیکیشن موبایل",
|
|
desc: "تجربهٔ بومیگونه روی iOS و Android از یک کدبیس مشترک — یا کاملاً نیتیو وقتی لازم باشد.",
|
|
tags: ["React Native", "Flutter", "Swift", "Kotlin"],
|
|
},
|
|
{
|
|
n: "۰۴",
|
|
title: "ابرو DevOps",
|
|
desc: "زیرساختی که با رشد شما مقیاس میشود؛ استقرار خودکار، امنیت و مانیتورینگ.",
|
|
tags: ["AWS / GCP", "کوبرنتیز", "CI/CD", "Terraform"],
|
|
},
|
|
{
|
|
n: "۰۵",
|
|
title: "هوش مصنوعی و داده",
|
|
desc: "هوش مصنوعی کاربردی؛ اتصال LLM، اتوماسیون هوشمند و خطوط لوله داده.",
|
|
tags: ["LLM", "اتوماسیون", "مهندسی داده", "تحلیل"],
|
|
},
|
|
],
|
|
},
|
|
work: {
|
|
tag: "نمونه کارها",
|
|
items: [
|
|
{ n: "۰۱", title: "پالسبورد", cat: "پلتفرم تحلیلی فینتک", year: "۱۴۰۳" },
|
|
{ n: "۰۲", title: "ایرولوپ", cat: "نرمافزار لجستیک", year: "۱۴۰۳" },
|
|
{ n: "۰۳", title: "مدسینک", cat: "پلتفرم هلثتک", year: "۱۴۰۲" },
|
|
{ n: "۰۴", title: "نوواپی", cat: "زیرساخت پرداخت", year: "۱۴۰۲" },
|
|
],
|
|
},
|
|
process: {
|
|
tag: "چگونه کار میکنیم",
|
|
steps: [
|
|
{ n: "۰۱", title: "کشف", desc: "کارگاه، پژوهش و همراستایی روی نتایجی که واقعاً مهماند." },
|
|
{ n: "۰۲", title: "طراحی", desc: "سیستمها، جریانها و رابطهایی که ساده و قابلاعتماد به نظر میرسند." },
|
|
{ n: "۰۳", title: "توسعه", desc: "مهندسان ارشد که نرمافزار آمادهٔ تولید تحویل میدهند." },
|
|
{ n: "۰۴", title: "استقرار و مقیاس", desc: "CI/CD، مانیتورینگ و زیرساختی که با شما رشد میکند." },
|
|
],
|
|
},
|
|
stats: {
|
|
items: [
|
|
{ value: 120, suffix: "+", label: "پروژه تحویلشده" },
|
|
{ value: 40, suffix: "+", label: "مشتری" },
|
|
{ value: 15, suffix: "", label: "مهندس و طراح" },
|
|
{ value: 98, suffix: "%", label: "ماندگاری مشتری" },
|
|
],
|
|
},
|
|
team: {
|
|
tag: "تیم",
|
|
headline: "با جمع ما آشنا شوید",
|
|
body: "تیمی جمعوجور از متخصصان محصول، طراحی و مهندسی.",
|
|
members: [
|
|
{ name: "علی رضایی", role: "مدیرعامل و همبنیانگذار" },
|
|
{ name: "سارا محمدی", role: "مدیر فنی و همبنیانگذار" },
|
|
{ name: "مریم حسینی", role: "سرپرست طراحی" },
|
|
{ name: "رضا کریمی", role: "مهندس ارشد" },
|
|
],
|
|
},
|
|
footer: {
|
|
tag: "تماس",
|
|
marquee: ["پروژهای در ذهن دارید؟", "سلام کنید", "با هم کار کنیم"],
|
|
cta: "شروع همکاری",
|
|
email: "hello@montech.ir",
|
|
phone: "+98 21 0000 0000",
|
|
address: ["تهران", "ایران"],
|
|
socials: ["لینکدین", "گیتهاب", "اینستاگرام"],
|
|
},
|
|
};
|
|
|
|
async function main() {
|
|
const mobile = process.env.ADMIN_MOBILE || "09121234567";
|
|
const password = process.env.ADMIN_PASSWORD || "change-me-strong";
|
|
const name = process.env.ADMIN_NAME || "مدیر منتک";
|
|
const hash = await bcrypt.hash(password, 10);
|
|
|
|
await prisma.admin.upsert({
|
|
where: { mobile },
|
|
create: { mobile, passwordHash: hash, name, email: "admin@montech.ir" },
|
|
update: { passwordHash: hash, name },
|
|
});
|
|
|
|
await prisma.siteSettings.upsert({
|
|
where: { id: "default" },
|
|
create: {
|
|
id: "default",
|
|
brandName: "منتک",
|
|
tagline: "گروه توسعه نرمافزار",
|
|
email: "hello@montech.ir",
|
|
phone: "+98 21 0000 0000",
|
|
address: "تهران، ایران",
|
|
timezone: "Asia/Tehran",
|
|
socials: [
|
|
{ label: "لینکدین", url: "https://linkedin.com" },
|
|
{ label: "گیتهاب", url: "https://github.com" },
|
|
],
|
|
},
|
|
update: {
|
|
brandName: "منتک",
|
|
tagline: "گروه توسعه نرمافزار",
|
|
address: "تهران، ایران",
|
|
},
|
|
});
|
|
|
|
const pages = [
|
|
{
|
|
key: "home",
|
|
title: "خانه",
|
|
seo: {
|
|
title: "منتک — گروه توسعه نرمافزار",
|
|
description:
|
|
"منتک پلتفرمهای وب، اپلیکیشن موبایل و زیرساخت ابری با عملکرد بالا میسازد. مستقر در تهران، فعال در سراسر ایران.",
|
|
canonical: "https://montech.ir/",
|
|
},
|
|
},
|
|
{
|
|
key: "blog",
|
|
title: "بلاگ",
|
|
seo: {
|
|
title: "بلاگ — منتک",
|
|
description: "یادداشتهایی درباره محصول، مهندسی و ساخت نرمافزار.",
|
|
canonical: "https://montech.ir/blog",
|
|
},
|
|
},
|
|
{
|
|
key: "gallery",
|
|
title: "گالری",
|
|
seo: {
|
|
title: "گالری — منتک",
|
|
description: "تصاویر منتخب از پروژهها و فضای استودیو منتک.",
|
|
canonical: "https://montech.ir/gallery",
|
|
},
|
|
},
|
|
];
|
|
|
|
for (const p of pages) {
|
|
const page = await prisma.page.upsert({
|
|
where: { key: p.key },
|
|
create: { key: p.key, title: p.title },
|
|
update: { title: p.title },
|
|
});
|
|
await prisma.pageSeo.upsert({
|
|
where: { pageId: page.id },
|
|
create: { pageId: page.id, ...p.seo },
|
|
update: { ...p.seo },
|
|
});
|
|
}
|
|
|
|
for (const [key, data] of Object.entries(defaultSections)) {
|
|
await prisma.sectionContent.upsert({
|
|
where: { key },
|
|
create: { key, data: data as object },
|
|
update: { data: data as object },
|
|
});
|
|
}
|
|
|
|
await prisma.blogPost.upsert({
|
|
where: { slug: "welcome-to-montech" },
|
|
create: {
|
|
slug: "welcome-to-montech",
|
|
title: "به منتک خوش آمدید",
|
|
excerpt: "ما نرمافزاری میسازیم که واقعاً کار میکند — و اینجا دربارهاش مینویسیم.",
|
|
content:
|
|
"منتک یک گروه توسعه نرمافزار است که پلتفرم وب، اپلیکیشن موبایل و زیرساخت ابری میسازد.\n\nدر این بلاگ درباره ساخت محصول، مهندسی و درسآموختههای استودیو مینویسیم.",
|
|
published: true,
|
|
publishedAt: new Date(),
|
|
seoTitle: "به منتک خوش آمدید — بلاگ",
|
|
seoDesc: "معرفی منتک و نحوه ساخت نرمافزار در تیم ما.",
|
|
},
|
|
update: {
|
|
title: "به منتک خوش آمدید",
|
|
excerpt: "ما نرمافزاری میسازیم که واقعاً کار میکند — و اینجا دربارهاش مینویسیم.",
|
|
content:
|
|
"منتک یک گروه توسعه نرمافزار است که پلتفرم وب، اپلیکیشن موبایل و زیرساخت ابری میسازد.\n\nدر این بلاگ درباره ساخت محصول، مهندسی و درسآموختههای استودیو مینویسیم.",
|
|
seoTitle: "به منتک خوش آمدید — بلاگ",
|
|
seoDesc: "معرفی منتک و نحوه ساخت نرمافزار در تیم ما.",
|
|
},
|
|
});
|
|
|
|
console.log("Seed complete. Admin:", mobile);
|
|
}
|
|
|
|
main()
|
|
.catch((e) => {
|
|
console.error(e);
|
|
process.exit(1);
|
|
})
|
|
.finally(async () => {
|
|
await prisma.$disconnect();
|
|
});
|