const { User } = require('../../models/user');

async function getTelegramUsersByQuery(query = {}) {
  return User.find({
    ...query,
    telegram_id: { $exists: true, $ne: null },
  }).lean();
}

async function getAdminTelegramUsers(idapp) {
  return getTelegramUsersByQuery({ idapp, isAdmin: true });
}

async function getManagersTelegramUsers(idapp) {
  return getTelegramUsersByQuery({ idapp, isManager: true });
}

async function getFacilitatoriTelegramUsers(idapp) {
  return getTelegramUsersByQuery({ idapp, isFacilitatore: true });
}

async function getAllTelegramUsersByApp(idapp) {
  return getTelegramUsersByQuery({ idapp });
}

module.exports = {
  getTelegramUsersByQuery,
  getAdminTelegramUsers,
  getManagersTelegramUsers,
  getFacilitatoriTelegramUsers,
  getAllTelegramUsersByApp,
};
