canina/backend/prisma/seed.ts

305 lines
18 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { PrismaClient } from '@prisma/client';
import * as fs from 'fs';
import * as path from 'path';
import * as ts from 'typescript';
import * as vm from 'vm';
const prisma = new PrismaClient();
async function main() {
console.log('Wiping existing database records...');
await prisma.reminderCompletion.deleteMany();
await prisma.reminder.deleteMany();
await prisma.healthLog.deleteMany();
await prisma.petMedicalCondition.deleteMany();
await prisma.pet.deleteMany();
await prisma.orderItem.deleteMany();
await prisma.order.deleteMany();
await prisma.blog.deleteMany();
await prisma.walletTransaction.deleteMany();
await prisma.userAddress.deleteMany();
await prisma.user.deleteMany();
await prisma.productIngredient.deleteMany();
await prisma.productSymptom.deleteMany();
await prisma.product.deleteMany();
await prisma.coupon.deleteMany();
await prisma.uiText.deleteMany();
await prisma.scientificTerm.deleteMany();
await prisma.category.deleteMany();
console.log('Database successfully wiped.');
console.log('Creating Admin User...');
await prisma.user.upsert({
where: { id: '12345678-1234-1234-1234-123456789012' },
update: {},
create: {
id: '12345678-1234-1234-1234-123456789012',
firstName: 'Admin',
lastName: 'System',
email: 'admin@canino.ir',
role: 'ADMIN',
mobile: '09000000000'
}
});
// Seeding UI Texts
console.log('Seeding UI Texts...');
const uiTexts = {
hero_badge: "از ۱۹۸۴ در خدمت سلامت حیوانات",
hero_title: "تخصص آلمانی در خدمت\nسلامت پت‌های خانگی",
hero_desc: "از سال ۱۹۸۴، شرکت Canina pharma GmbH در برگیش گلادباخ آلمان، با بهره‌گیری از مواد اولیه طبیعی و فرآیندهای پیشرفته، استاندارد طلایی مکمل‌های دامپزشکی را تعریف می‌کند. کانینا نماینده رسمی این برند در ایران است.",
hero_btn_advisor: "دستیار سلامت پت",
hero_btn_products: "مشاهده محصولات",
hero_stat_founded: "۱۹۸۴ سال تأسیس",
hero_stat_agencies: "نمایندگی فعال",
hero_stat_german_formula: "فرمول آلمانی",
hero_image_badge: "سرآمد علمی در پزشکی پت‌ها",
hero_image_title: "مکمل‌های تایید شده دامپزشکی با گواهی IFS",
hero_quality_standard: "استاندارد کیفی آلمان (IFS & HACCP)",
cta_title: "می‌خواهید بدانید کدام محصول برای پت شما مناسب‌تر است؟",
cta_subtitle: "تیم متخصص دامپزشکی کانینا ایران آماده پاسخگویی به سوالات شماست. با بیش از ۴۰ محصول تخصصی، راهکار مناسب هر نیاز بالینی را خواهید یافت.",
cta_btn_free: "دریافت رژیم مکمل رایگان",
cta_btn_products: "ورود به محصولات تخصصی",
about_teaser_badge: "داستان ما از آلمان",
about_teaser_title: "Canina pharma GmbH میراثی از ۱۹۸۴",
about_teaser_desc: "شرکت Canina pharma GmbH در سال ۱۹۸۴ توسط پتر و کریستین کرشن‌مایر در شهر برگیش گلادباخ آلمان تأسیس شد. این شرکت با شعار «مادر طبیعت بهترین نسخه را می‌داند» از مواد اولیه طبیعی و تجدیدپذیر برای تولید مکمل‌های با گرید دارویی استفاده می‌کند. امروزه محصولات کانینا در بیش از ۴۰ کشور جهان توزیع می‌شود و نماینده رسمی آن در ایران با نام کانینا به ارائه محصولات اصل با پروانه دامپزشکی می‌پردازد.",
about_teaser_feat1_title: "مواد اولیه نایاب",
about_teaser_feat1_desc: "استفاده از پودر صدف لب‌سبز اصل نیوزیلند (Perna canaliculus)، پیت طبیعی آلمان، آغوز و روغن‌های گیاهی ارگانیک با گرید دارویی.",
about_teaser_feat2_title: "فاقد مواد نگهدارنده",
about_teaser_feat2_desc: "تمامی محصولات ۱۰۰٪ طبیعی و فاقد رنگ‌های مصنوعی، طعم‌دهنده‌ها و نگهدارنده‌های شیمیایی هستند.",
about_teaser_feat3_title: "تاییدیه بین‌المللی",
about_teaser_feat3_desc: "دارای گواهی IFS (International Featured Standard) و HACCP. محصولات مطابق با سخت‌گیرانه‌ترین استانداردهای ایمنی مواد غذایی و دارویی اتحادیه اروپا تولید می‌شوند.",
about_teaser_quality_title: "کیفیت آلمانی",
about_teaser_quality_desc: "استانداردهای فوق‌دارویی تولید شده در کارخانه برگیش گلادباخ",
ingredients_wiki: JSON.stringify([
{
id: "green-mussel",
name: "صدف لب‌سبز (Perna Canaliculus)",
description: "این صدف بومی سواحل بکر نیوزیلند است و تنها منبع طبیعی حاوی گلیکوزآمین‌گلیکان‌ها (GAG) در غلظت بسیار بالا محسوب می‌شود. GAGها مولکول‌های آب را در ماتریکس غضروفی جذب کرده و خاصیت بافری و الاستیسیته مفاصل را بازیابی می‌کنند.",
benefits: [
"بازسازی بافت غضروفی تخریب شده",
"خواص ضدالتهابی طبیعی برای رباط‌ها",
"تامین اسیدهای چرب امگا ۳ خاص (ETA)"
]
},
{
id: "silver",
name: "نقره میکروسیلور (Microsilver BG)",
description: "ذرات نقره خالص با ساختار اسفنجی که به دلیل اندازه ذرات درشت، جذب خون نمی‌شوند اما اثر آنتی‌باکتریال پایداری بر سطح غشاها دارند. بر خلاف نقره کلوئیدی معمولی، میکروسیلور رسوب سطحی طولانی‌مدت ایجاد کرده و فلور طبیعی را تخریب نمی‌کند.",
benefits: [
"مبارزه با باکتری‌های مقاوم در دهان و پوست",
"عدم آسیب به فلور طبیعی بدن",
"جایگزین ایمن برای آنتی‌بیوتیک‌های موضعی"
]
},
{
id: "colostrum",
name: "آغوز (Colostrum)",
description: "اولین شیر پستانداران پس از زایمان که حاوی دوز بالایی از ایمونوگلوبولین‌ها (IgG, IgA, IgM)، لاکتوفرین و سایتوکاین‌ها برای فعال‌سازی فوری سیستم ایمنی است. سد دفاعی روده را تقویت کرده و از نفوذ پاتوژن‌ها جلوگیری می‌کند.",
benefits: [
"تقویت سد دفاعی روده",
"انتقال مستقیم آنتی‌بادی به نوزادان",
"تسریع نقاهت بعد از جراحی"
]
},
{
id: "peat-extract",
name: "عصاره پیت (Peat Extract / Moor)",
description: "ماده‌ای کاملاً طبیعی حاصل از تجزیه گیاهان در طول هزاران سال که غنی از اسیدهای هومیک با ساختار پلیمری دارای بار منفی است. سموم، قارچ‌ها و باکتری‌های مضر را در روده به دام انداخته و دفع می‌کند.",
benefits: [
"جذب سموم و فلزات سنگین در دستگاه گوارش",
"تنظیم فلور روده",
"بهبود اشتها و هضم"
]
},
{
id: "collagen",
name: "کلاژن هیدرولیز شده",
description: "پپتیدهای کلاژن نوع I و II با وزن مولکولی پایین که مستقیماً در ماتریکس غضروف مفصلی جذب شده و ساختار استخوان‌ها و تاندون‌ها را تقویت کرده و تحرک مفاصل را بهبود می‌بخشند.",
benefits: [
"بازسازی غضروف مفصلی",
"تقویت بافت همبند و تاندون‌ها",
"بهبود خاصیت ارتجاعی مفاصل"
]
},
{
id: "biotin",
name: "بیوتین (Biotin / Vitamin H)",
description: "ویتامین ضروری از گروه B که به عنوان کوآنزیم در مسیرهای سنتز کراتین و چربی‌ها عمل می‌کند. کمبود آن باعث ریزش مو، کدر شدن پوشش و شکنندگی پنجه‌ها می‌شود.",
benefits: [
"جلوگیری از ریزش مو و بازسازی پوشش مویی",
"تقویت رنگدانه طبیعی مو و بینی",
"محکم‌سازی پنجه، ناخن و سم‌ها"
]
},
{
id: "taurin",
name: "تورین (Taurine)",
description: "اسید آمینه بسیار حیاتی برای گربه‌ها. بدن گربه قادر به سنتز تورین نیست و کمبود آن در رژیم غذایی می‌تواند به تخریب تدریجی شبکیه چشم (نابینایی) و بیماری قلبی منجر گردد.",
benefits: [
"سلامت بینایی و شبکیه چشم گربه‌ها",
"تقویت عضله قلب و عملکرد پمپاژ خون",
"پشتیبانی از سیستم ایمنی و تولید مثل"
]
},
{
id: "salmon-oil",
name: "روغن ماهی سالمون (Salmon Oil)",
description: "روغن ماهی سالمون خالص، سرشار از اسیدهای چرب امگا ۳ (DHA و EPA) که به کاهش پاسخ‌های التهابی، سلامت سیستم قلبی عروقی و پوست و مو کمک شایانی می‌کند.",
benefits: [
"بهبود براقیت و لطافت پوست و مو",
"خواص ضدالتهابی قوی در مفاصل",
"تقویت سیستم ایمنی و عملکردهای شناختی"
]
},
{
id: "black-cumin",
name: "سیاه دانه (Black Cumin)",
description: "دانه‌های سیاه دانه مصری غنی از اسیدهای چرب غیراشباع و روغن‌های فرار گیاهی با عطر آجیلی قوی که عملکرد گوارش و متابولیسم را بهبود می‌بخشند.",
benefits: [
"تنظیم متابولیسم عمومی و هضم بهتر",
"تقویت سیستم دفاعی طبیعی بدن",
"خواص طبیعی ضد باکتری و ضدقارچ"
]
},
{
id: "eggshell",
name: "پودر پوسته تخم مرغ (Eggshell Powder)",
description: "منبع طبیعی کلسیم ارگانیک با غلظت کلسیم بالا (۳۶٪) و مقدار ناچیز فسفر (۰.۱٪) جهت تنظیم نسبت کلسیم به فسفر در غذاهای گوشتی پخته یا خام.",
benefits: [
"تامین کلسیم بدون افزایش ناخواسته فسفر",
"جایگزین عالی برای حیوانات دارای آلرژی به استخوان",
"پشتیبانی از سلامت استخوان و دندان"
]
},
{
id: "hawthorn",
name: "زالزالک (Hawthorn)",
description: "عصاره گیاهی دارویی با سابقه مصرف طولانی جهت مهار طبیعی آنزیم‌های آسیب‌رسان و بهبود خون‌رسانی و کارایی کلی عضله قلب.",
benefits: [
"تقویت انقباضات ماهیچه قلب",
"بهبود جریان خون در رگ‌های کرونری",
"افزایش نشاط در سگ و گربه‌های مسن"
]
},
{
id: "l-carnitine",
name: "ال-کارنیتین (L-Carnitine)",
description: "ترکیب شبه‌آمینه که با تسهیل انتقال اسیدهای چرب به درون میتوکندری، به تولید انرژی سلولی کمک کرده و از خستگی عضلانی جلوگیری می‌نماید.",
benefits: [
"تولید انرژی از چربی‌ها در ماهیچه قلب",
"بهبود قدرت بدنی و کاهش خستگی عضلات",
"حمایت از متابولیسم سالم چربی‌ها"
]
},
{
id: "seaweed",
name: "جلبک دریایی (Seaweed)",
description: "جلبک قهوه‌ای اقیانوسی ارگانیک حاوی اسیدهای آمینه، ویتامین‌ها و ید طبیعی جهت کمک به تنظیم غده تیروئید و تقویت پیگمنت‌های تیره حیوان.",
benefits: [
"تقویت رنگدانه بینی، پنجه و پوشش مویی",
"بهبود هضم و جذب مواد مغذی",
"پشتیبانی عمومی از سلامت غده تیروئید"
]
},
{
id: "hyaluronic",
name: "هیالورونات سدیم (Sodium Hyaluronate)",
description: "ماده‌ای فوق‌العاده با خاصیت اتصال به آب بالا که روان‌کننده و مرطوب‌کننده قرنیه چشم بوده و از خشکی و خارش چشم‌ها جلوگیری می‌کند.",
benefits: [
"شستشو و تسکین چشم‌های تحریک‌شده و قرمز",
"رطوبت‌رسانی ماندگار به سطح خارجی قرنیه",
"کمک به رفع چسبندگی و قی کردن چشم"
]
},
{
id: "calendula-sea-buckthorn",
name: "روغن کالاندولا و سنجد دریایی",
description: "روغن‌های طبیعی گیاهی با اثرات ضدالتهابی، بازسازی‌کننده و تسکین‌دهنده پوست که یک سد دفاعی فیزیکی و بیولوژیکی ایجاد می‌کنند.",
benefits: [
"ترمیم خشکی، ترک خوردگی و آسیب‌های پنجه",
"تسکین التهاب و قرمزی ناشی از گزش حشرات",
"کمک به بازسازی سریع‌تر لایه‌های آسیب‌دیده پوست"
]
},
{
id: "dodecanoic",
name: "اسید دودکانوئیک و مارگوسا",
description: "عوامل فعال طبیعی و گیاهی بدون مواد حشره‌کش شیمیایی با خواص دورکننده قوی در برابر انگل‌های خارجی نظیر کک، کنه و شپش.",
benefits: [
"دفع موثر کنه‌ها، کک‌ها و شپش‌های گزنده",
"جلوگیری از مستقر شدن انگل‌ها و تخم آنها در محیط",
"ایمن برای حیوان و اعضای خانواده در محیط خانه"
]
}
]),
medical_options: JSON.stringify([
{ id: "joint_surgery", label: "جراحی مفاصل", condition: "جراحی مفاصل" },
{ id: "recent_birth", label: "زایمان اخیر", condition: "زایمان اخیر" },
{ id: "pregnancy", label: "بارداری", condition: "بارداری" },
{ id: "digestion", label: "مشکلات گوارشی", condition: "مشکلات گوارشی" },
{ id: "hair_loss", label: "ریزش موی شدید", condition: "ریزش موی شدید" },
{ id: "appetite", label: "بی‌اشتهایی", condition: "بی‌اشتهایی" },
{ id: "heart_disease", label: "نارسایی قلبی", condition: "نارسایی قلبی" },
{ id: "parasites", label: "آلودگی انگلی", condition: "آلودگی انگلی" }
])
};
for (const [key, value] of Object.entries(uiTexts)) {
await prisma.uiText.upsert({
where: { key },
update: { value },
create: { key, value }
});
}
// 2. Seed Scientific Terms
console.log('Seeding Scientific Terms...');
const termsFilePath = path.join(process.cwd() + "/prisma", '..', '..', 'frontend', 'application', 'lib', 'data', 'scientificTerms.ts');
if (fs.existsSync(termsFilePath)) {
const termsContent = fs.readFileSync(termsFilePath, 'utf-8');
const termsJsCode = ts.transpile(termsContent, {
module: ts.ModuleKind.CommonJS,
target: ts.ScriptTarget.ES2018,
});
const termsContext = { exports: {} };
vm.createContext(termsContext);
vm.runInContext(termsJsCode, termsContext);
const SCIENTIFIC_TERMS = (termsContext.exports as any).SCIENTIFIC_TERMS;
if (SCIENTIFIC_TERMS) {
for (const [key, termData] of Object.entries(SCIENTIFIC_TERMS)) {
const td = termData as any;
await prisma.scientificTerm.upsert({
where: { key },
update: {
term: td.term,
definition: td.definition,
wikiId: td.wikiId || 'general'
},
create: {
key,
term: td.term,
definition: td.definition,
wikiId: td.wikiId || 'general'
}
});
}
}
}
console.log('Seeding completed successfully!');
}
main()
.catch((e) => {
console.error('Error seeding data:', e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});