module.exports = {
  friendlyName: 'Process monthly reminders',

  fn: async function() {
    const users = await Utilisateurs.find({
      isUpdate: false,
      lastLoginAt: { '<': new Date(Date.now() - 30*24*60*60*1000) }, // Pas connectés depuis 30 jours
      or: [
        { email: { '!=': '' } },    // Soit email non vide
        { telephone1: { '!=': '' } } // Soit téléphone non vide
      ]
    });

    const monthlyCapacity = 20 * 24 * 30;
    
    for (let i = 0; i < Math.min(users.length, monthlyCapacity); i++) {
      const sendDate = new Date();
      sendDate.setDate(sendDate.getDate() + Math.floor(i / 20));
      sendDate.setHours(i % 24, 0, 0, 0);

      await PendingNotification.create({
        user: users[i].id,
        channel: users[i].email ? 'email' : 'whatsapp',
        scheduledDate: sendDate
      });
    }
  }
};