chore: fix the purchased true for the danakservices
This commit is contained in:
@@ -4,8 +4,10 @@ import { connectionSource } from "./connection";
|
||||
// import { seedAdmin } from "./seeders/admin.seeder";
|
||||
// import { seedCityAndProvince } from "./seeders/iran-city.seeder";
|
||||
// import { seedNotifSettings } from "./seeders/notif-setting.seeder";
|
||||
import { seedPaymentGateways } from "./seeders/payment-gateway.seeder";
|
||||
// import { seedPaymentGateways } from "./seeders/payment-gateway.seeder";
|
||||
// import { seedPermissionsAndRoles } from "./seeders/role.seeder";
|
||||
import { seedBlogCommentReplies } from "./seeders/blog-comment-reply.seeder";
|
||||
import { seedBlogComments } from "./seeders/blog-comment.seeder";
|
||||
|
||||
const logger = new Logger("Seeder");
|
||||
|
||||
@@ -16,9 +18,12 @@ export const runSeeder = async () => {
|
||||
// await seedPermissionsAndRoles(connectionSource, logger);
|
||||
// await seedAdmin(connectionSource, logger);
|
||||
// await seedNotifSettings(connectionSource, logger);
|
||||
await seedPaymentGateways(connectionSource, logger);
|
||||
// await seedPaymentGateways(connectionSource, logger);
|
||||
// await seedCityAndProvince(connectionSource, logger);
|
||||
|
||||
await seedBlogComments(connectionSource, logger);
|
||||
await seedBlogCommentReplies(connectionSource, logger);
|
||||
|
||||
logger.log("seeding completed");
|
||||
process.exit(0);
|
||||
};
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
import { Logger } from "@nestjs/common";
|
||||
import { DataSource } from "typeorm";
|
||||
|
||||
import { BlogCommentReply } from "../../src/modules/blogs/entities/blog-comment-reply.entity";
|
||||
import { BlogComment } from "../../src/modules/blogs/entities/blog-comment.entity";
|
||||
import { User } from "../../src/modules/users/entities/user.entity";
|
||||
|
||||
const blogCommentReplies = [
|
||||
{
|
||||
content: "ممنون از نظر شما. خوشحالم که مقاله مفید بوده.",
|
||||
isOfficialReply: true,
|
||||
},
|
||||
{
|
||||
content: "بله، این روش در اکثر شرایط قابل استفاده است. فقط در موارد خاص نیاز به تنظیمات اضافی دارد.",
|
||||
isOfficialReply: false,
|
||||
},
|
||||
{
|
||||
content: "من هم همین تجربه را داشتم. واقعاً روش موثری است.",
|
||||
isOfficialReply: false,
|
||||
},
|
||||
{
|
||||
content: "در مقاله بعدی حتماً این بخش را بیشتر توضیح خواهم داد.",
|
||||
isOfficialReply: true,
|
||||
},
|
||||
{
|
||||
content: "خواهش میکنم. هدف ما کمک به کاربران است.",
|
||||
isOfficialReply: true,
|
||||
},
|
||||
{
|
||||
content: "پیشنهاد خوبی است. در نسخه بعدی مقاله حتماً مثالهای بیشتری اضافه میکنم.",
|
||||
isOfficialReply: true,
|
||||
},
|
||||
{
|
||||
content: "متأسفم که این احساس را داشتید. سعی میکنم مطالب جدیدتری ارائه دهم.",
|
||||
isOfficialReply: true,
|
||||
},
|
||||
{
|
||||
content: "بله، حتماً. منابع علمی در انتهای مقاله آمده است.",
|
||||
isOfficialReply: true,
|
||||
},
|
||||
{
|
||||
content: "من هم همین سوال را داشتم. ممنون که پرسیدید.",
|
||||
isOfficialReply: false,
|
||||
},
|
||||
{
|
||||
content: "این روش را من هم امتحان کردم و نتیجه گرفتم.",
|
||||
isOfficialReply: false,
|
||||
},
|
||||
{
|
||||
content: "بله، کاملاً درست میگویید. این روش نیاز به تمرین دارد.",
|
||||
isOfficialReply: false,
|
||||
},
|
||||
{
|
||||
content: "من هم همین تجربه را داشتم. واقعاً عالی کار میکند.",
|
||||
isOfficialReply: false,
|
||||
},
|
||||
];
|
||||
|
||||
export const seedBlogCommentReplies = async (dataSource: DataSource, logger: Logger) => {
|
||||
try {
|
||||
const replyRepo = dataSource.getRepository(BlogCommentReply);
|
||||
const commentRepo = dataSource.getRepository(BlogComment);
|
||||
const userRepo = dataSource.getRepository(User);
|
||||
|
||||
// Get existing comments and users
|
||||
const comments = await commentRepo.find({ take: 10 });
|
||||
const users = await userRepo.find({ take: 10 });
|
||||
|
||||
if (comments.length === 0) {
|
||||
logger.warn("No blog comments found. Please seed blog comments first.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (users.length === 0) {
|
||||
logger.warn("No users found. Please seed users first.");
|
||||
return;
|
||||
}
|
||||
|
||||
for (const replyData of blogCommentReplies) {
|
||||
// Randomly select comment and user
|
||||
const randomComment = comments[Math.floor(Math.random() * comments.length)];
|
||||
const randomUser = users[Math.floor(Math.random() * users.length)];
|
||||
|
||||
const reply = replyRepo.create({
|
||||
...replyData,
|
||||
comment: randomComment,
|
||||
author: randomUser,
|
||||
});
|
||||
|
||||
await replyRepo.save(reply);
|
||||
logger.log(`Blog comment reply created successfully`);
|
||||
}
|
||||
|
||||
logger.log("Blog comment replies seeding completed");
|
||||
} catch (error) {
|
||||
logger.error("Error in seeding blog comment replies", error);
|
||||
process.exit(1);
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,582 @@
|
||||
import { Logger } from "@nestjs/common";
|
||||
import { DataSource, IsNull } from "typeorm";
|
||||
|
||||
import { BlogComment } from "../../src/modules/blogs/entities/blog-comment.entity";
|
||||
import { Blog } from "../../src/modules/blogs/entities/blog.entity";
|
||||
import { CommentStatus } from "../../src/modules/blogs/enums/comment-status.enum";
|
||||
import { User } from "../../src/modules/users/entities/user.entity";
|
||||
|
||||
const blogComments = [
|
||||
{
|
||||
title: "مقاله بسیار مفیدی بود",
|
||||
content: "این مقاله اطلاعات بسیار ارزشمندی در اختیار من قرار داد. ممنون از نویسنده محترم که این مطالب مفید را گردآوری کرده است.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوالی دارم",
|
||||
content: "مطالب ارائه شده عالی بود اما یک سوال دارم: آیا این روش در تمام شرایط قابل استفاده است؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تجربه شخصی",
|
||||
content: "من این روش را امتحان کردم و نتایج فوقالعادهای گرفتم. پیشنهاد میکنم همه امتحان کنند.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "نیاز به توضیح بیشتر",
|
||||
content: "لطفاً در مورد بخش سوم مقاله توضیحات بیشتری ارائه دهید. این قسمت کمی مبهم است.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از نویسنده",
|
||||
content: "بسیار ممنون از زحمات شما. این مقاله کمک زیادی به من کرد.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد بهبود",
|
||||
content: "مقاله خوبی بود اما پیشنهاد میکنم مثالهای بیشتری اضافه کنید تا درک بهتری حاصل شود.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "مطالب تکراری",
|
||||
content: "بخشهایی از این مقاله در مقالات قبلی هم آمده بود. بهتر است مطالب جدیدتری ارائه دهید.",
|
||||
status: CommentStatus.REJECTED,
|
||||
},
|
||||
{
|
||||
title: "سوال تخصصی",
|
||||
content: "آیا میتوانید منابع علمی این مقاله را هم معرفی کنید؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "عالی بود",
|
||||
content: "واقعاً مقاله جامع و کاملی بود. همه چیز را به خوبی توضیح داده بودید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "مشکل در اجرا",
|
||||
content: "من این روش را پیادهسازی کردم اما با مشکل مواجه شدم. لطفاً راهنمایی کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "نکته جالب",
|
||||
content: "نکته جالبی در مورد بخش چهارم مقاله بود که قبلاً نمیدانستم.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "درخواست مقاله جدید",
|
||||
content: "لطفاً در مورد موضوع مشابه مقاله جدیدی بنویسید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "مقایسه با روشهای دیگر",
|
||||
content: "آیا میتوانید این روش را با روشهای مشابه مقایسه کنید؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد پیادهسازی",
|
||||
content: "در مرحله سوم پیادهسازی، دقیقاً چه کاری باید انجام دهم؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر ویژه",
|
||||
content: "بسیار ممنون از زحمات شما. این مقاله واقعاً کمک زیادی به من کرد.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد موضوع",
|
||||
content: "پیشنهاد میکنم در مورد موضوع X مقالهای بنویسید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد کاربرد",
|
||||
content: "آیا این روش در حوزههای دیگر هم قابل استفاده است؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "نیاز به مثال بیشتر",
|
||||
content: "لطفاً مثالهای عملی بیشتری اضافه کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از تیم",
|
||||
content: "ممنون از تیم نویسندگان که این مطالب مفید را تهیه کردهاند.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد ابزارها",
|
||||
content: "آیا ابزارهای خاصی برای این کار نیاز است؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد بهبود ساختار",
|
||||
content: "پیشنهاد میکنم ساختار مقاله را کمی تغییر دهید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد زمانبندی",
|
||||
content: "چقدر زمان برای پیادهسازی این روش نیاز است؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از توضیحات",
|
||||
content: "توضیحات شما بسیار واضح و قابل فهم بود.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد هزینه",
|
||||
content: "آیا این روش هزینه خاصی دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد ویدیو",
|
||||
content: "پیشنهاد میکنم ویدیوی آموزشی هم تهیه کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد محدودیتها",
|
||||
content: "آیا محدودیت خاصی در استفاده از این روش وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از پاسخگویی",
|
||||
content: "ممنون از پاسخگویی سریع شما به سوالات.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد کارگاه",
|
||||
content: "پیشنهاد میکنم کارگاه آموزشی برگزار کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد پیشنیازها",
|
||||
content: "چه پیشنیازهایی برای استفاده از این روش نیاز است؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از بهروزرسانی",
|
||||
content: "ممنون از بهروزرسانی مداوم مقالات.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد پشتیبانی",
|
||||
content: "آیا پشتیبانی فنی برای این روش ارائه میشود؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد کتاب",
|
||||
content: "پیشنهاد میکنم کتاب مرجع معرفی کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد گواهینامه",
|
||||
content: "آیا گواهینامهای برای این روش ارائه میشود؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از جزئیات",
|
||||
content: "جزئیات ارائه شده بسیار کامل و دقیق بود.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد جامعه کاربران",
|
||||
content: "آیا جامعه کاربران فعالی برای این روش وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد انجمن",
|
||||
content: "پیشنهاد میکنم انجمن کاربران تشکیل دهید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد آینده",
|
||||
content: "آینده این روش چگونه خواهد بود؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از نوآوری",
|
||||
content: "ممنون از نوآوری و خلاقیت در ارائه مطالب.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد رقبا",
|
||||
content: "آیا روشهای رقیب دیگری وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد تحقیق",
|
||||
content: "پیشنهاد میکنم تحقیقات بیشتری در این زمینه انجام دهید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد استانداردها",
|
||||
content: "آیا استاندارد خاصی برای این روش وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از شفافیت",
|
||||
content: "ممنون از شفافیت در ارائه اطلاعات.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد امنیت",
|
||||
content: "آیا این روش از نظر امنیتی مطمئن است؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد تست",
|
||||
content: "پیشنهاد میکنم امکان تست رایگان فراهم کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد کیفیت",
|
||||
content: "چگونه میتوان کیفیت نتایج را ارزیابی کرد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از پشتیبانی",
|
||||
content: "ممنون از پشتیبانی کامل شما در این زمینه.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد توسعه",
|
||||
content: "آیا امکان توسعه و سفارشیسازی وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد همکاری",
|
||||
content: "آیا امکان همکاری در توسعه این روش وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد آموزش",
|
||||
content: "آیا دورههای آموزشی برای این روش ارائه میشود؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از تلاش",
|
||||
content: "ممنون از تلاش و زحمات شما در این زمینه.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد مجوزها",
|
||||
content: "آیا مجوز خاصی برای استفاده از این روش نیاز است؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد بهینهسازی",
|
||||
content: "پیشنهاد میکنم روشهای بهینهسازی را هم بررسی کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد سازگاری",
|
||||
content: "آیا این روش با سیستمهای قدیمی سازگار است؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از صبر",
|
||||
content: "ممنون از صبر و حوصله شما در پاسخگویی.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد عملکرد",
|
||||
content: "عملکرد این روش در شرایط مختلف چگونه است؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد مقایسه",
|
||||
content: "پیشنهاد میکنم جدول مقایسه با روشهای دیگر ارائه دهید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد نگهداری",
|
||||
content: "آیا نگهداری این روش پیچیده است؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از دقت",
|
||||
content: "ممنون از دقت و توجه شما به جزئیات.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد مقیاسپذیری",
|
||||
content: "آیا این روش قابلیت مقیاسپذیری دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد چکلیست",
|
||||
content: "پیشنهاد میکنم چکلیست پیادهسازی ارائه دهید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد خطاها",
|
||||
content: "رایجترین خطاها در پیادهسازی چیست؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از راهنمایی",
|
||||
content: "ممنون از راهنماییهای مفید شما.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد بکآپ",
|
||||
content: "آیا نیاز به بکآپ خاصی وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد FAQ",
|
||||
content: "پیشنهاد میکنم بخش سوالات متداول اضافه کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد بروزرسانی",
|
||||
content: "چگونه میتوان سیستم را بروزرسانی کرد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از وقت",
|
||||
content: "ممنون از وقتی که برای پاسخگویی گذاشتید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد مانیتورینگ",
|
||||
content: "آیا ابزار مانیتورینگ خاصی پیشنهاد میکنید؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد گلاسری",
|
||||
content: "پیشنهاد میکنم گلاسری اصطلاحات اضافه کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد لاگها",
|
||||
content: "چگونه میتوان لاگها را بررسی کرد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از کیفیت",
|
||||
content: "ممنون از کیفیت بالای مطالب ارائه شده.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد تست",
|
||||
content: "چه روشهای تستی پیشنهاد میکنید؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد نمودار",
|
||||
content: "پیشنهاد میکنم نمودار فرآیند اضافه کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد دیباگ",
|
||||
content: "چگونه میتوان مشکلات را دیباگ کرد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از انگیزه",
|
||||
content: "ممنون از انگیزهای که به ما دادید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد کانفیگ",
|
||||
content: "آیا کانفیگ خاصی نیاز است؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد تمپلیت",
|
||||
content: "پیشنهاد میکنم تمپلیت آماده ارائه دهید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد پرفورمنس",
|
||||
content: "چگونه میتوان پرفورمنس را بهبود داد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از صداقت",
|
||||
content: "ممنون از صداقت در بیان محدودیتها.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد مهاجرت",
|
||||
content: "چگونه میتوان از روش قدیمی مهاجرت کرد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد ابزار",
|
||||
content: "پیشنهاد میکنم ابزارهای کمکی معرفی کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد اتوماسیون",
|
||||
content: "آیا امکان اتوماسیون فرآیند وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از تجربه",
|
||||
content: "ممنون از به اشتراک گذاری تجربیات شخصی.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد API",
|
||||
content: "آیا API خاصی برای این روش وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد مثال کاربردی",
|
||||
content: "پیشنهاد میکنم مثالهای کاربردی بیشتری اضافه کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد داکیومنت",
|
||||
content: "آیا داکیومنت کاملی برای این روش وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از حرفهای بودن",
|
||||
content: "ممنون از رویکرد حرفهای شما.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد لایسنس",
|
||||
content: "آیا محدودیت لایسنسی وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد کیس استادی",
|
||||
content: "پیشنهاد میکنم کیس استادی ارائه دهید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد ترابلشوتینگ",
|
||||
content: "راهنمای ترابلشوتینگ کجا موجود است؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از پیگیری",
|
||||
content: "ممنون از پیگیری مداوم شما.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد کمیونیتی",
|
||||
content: "آیا کمیونیتی فعالی برای این روش وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد وبینار",
|
||||
content: "پیشنهاد میکنم وبینار آموزشی برگزار کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد بست پرکتیس",
|
||||
content: "بهترین شیوههای پیادهسازی چیست؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از انعطافپذیری",
|
||||
content: "ممنون از انعطافپذیری در پاسخگویی.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد ورکفلو",
|
||||
content: "آیا ورکفلو خاصی برای این روش پیشنهاد میکنید؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد چارت",
|
||||
content: "پیشنهاد میکنم چارت مقایسه ارائه دهید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد ریپورتینگ",
|
||||
content: "چگونه میتوان گزارشگیری کرد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از صبوری",
|
||||
content: "ممنون از صبوری شما در توضیح مطالب.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد انتگریشن",
|
||||
content: "آیا امکان انتگریشن با سیستمهای دیگر وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد پادکست",
|
||||
content: "پیشنهاد میکنم پادکست آموزشی تولید کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد کاستومایزیشن",
|
||||
content: "تا چه حد امکان سفارشیسازی وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از دسترسی",
|
||||
content: "ممنون از در دسترس قرار دادن این اطلاعات.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد رولبک",
|
||||
content: "آیا امکان بازگشت به حالت قبل وجود دارد؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "پیشنهاد بلاگ",
|
||||
content: "پیشنهاد میکنم بلاگ تخصصی راهاندازی کنید.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "سوال در مورد ورژنبندی",
|
||||
content: "چگونه ورژنبندی انجام میشود؟",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
{
|
||||
title: "تشکر از مسئولیتپذیری",
|
||||
content: "ممنون از مسئولیتپذیری شما در این زمینه.",
|
||||
status: CommentStatus.APPROVED,
|
||||
},
|
||||
];
|
||||
|
||||
export const seedBlogComments = async (dataSource: DataSource, logger: Logger) => {
|
||||
try {
|
||||
const commentRepo = dataSource.getRepository(BlogComment);
|
||||
const blogRepo = dataSource.getRepository(Blog);
|
||||
const userRepo = dataSource.getRepository(User);
|
||||
|
||||
// Get existing blogs and users
|
||||
const blogs = await blogRepo.find({ where: { deletedAt: IsNull() }, take: 10, order: { createdAt: "DESC" } });
|
||||
const users = await userRepo.find({ take: 10 });
|
||||
|
||||
if (blogs.length === 0) {
|
||||
logger.warn("No blogs found. Please seed blogs first.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (users.length === 0) {
|
||||
logger.warn("No users found. Please seed users first.");
|
||||
return;
|
||||
}
|
||||
|
||||
for (const commentData of blogComments) {
|
||||
// Randomly select blog and user
|
||||
const randomBlog = blogs[Math.floor(Math.random() * blogs.length)];
|
||||
const randomUser = users[Math.floor(Math.random() * users.length)];
|
||||
|
||||
const comment = commentRepo.create({
|
||||
...commentData,
|
||||
blog: randomBlog,
|
||||
user: randomUser,
|
||||
});
|
||||
|
||||
await commentRepo.save(comment);
|
||||
logger.log(`Blog comment "${commentData.title}" created successfully`);
|
||||
}
|
||||
|
||||
logger.log("Blog comments seeding completed");
|
||||
} catch (error) {
|
||||
logger.error("Error in seeding blog comments", error);
|
||||
process.exit(1);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user