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