const cron = require('node-cron') const AdvertisingModel = require('../models/AdvertisingModel') const NotificationModel = require('../models/NotificationModel') // تابع برای به‌روزرسانی تبلیغات منقضی شده const updateExpiredAdvertisings = async () => { const now = new Date() const oneMonthAgo = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000) try { const expiredAds = await AdvertisingModel.find({ status: 'accepted', acceptedAt: { $lte: oneMonthAgo } }) for (const ad of expiredAds) { ad.status = 'expired' ad.payment_status = null await ad.save() // ایجاد و ذخیره نوتیفیکیشن const notification = new NotificationModel({ user_id: ad.creator_id, project_post_id: ad._id, type: 'vitrine', title: 'انقضای ویترین', description: `ویترین شما با عنوان: ${ad.title} منقضی شد ` }) await notification.save() } console.log(`Updated ${expiredAds.length} expired advertisings successfully`) } catch (error) { console.error('Error updating expired advertisings:', error) } } // تنظیم کرون جاب برای اجرای هر ساعت cron.schedule('0 * * * *', () => { console.log('Running cron job to update expired advertisings') updateExpiredAdvertisings() }) module.exports = updateExpiredAdvertisings