

from django.core.mail import send_mail
from django.template.loader import render_to_string
from django.utils.html import strip_tags

from core.settings import EMAIL_HOST_USER

from apps.user.models import User



def send_daily_email():
    super_admin_users = User.objects.filter(role__name='admin')

    for user in super_admin_users:
        recipient_email = user.email
        subject = f'Super admin email Report for {user.get_full_name()}'

        context = {
            'recipient_name': user.get_full_name(),
            'user_role': user.role.name,
        }

        email_template = 'send_email.html'
        email_content_html = render_to_string(email_template, context)
        email_content_plain = strip_tags(email_content_html)

        send_mail(
            subject=subject,
            message=email_content_plain,
            from_email=EMAIL_HOST_USER,
            recipient_list=[recipient_email],
            html_message=email_content_html,
            fail_silently=False,
        )

    print("Emails sent to super admins successfully.")