from notifications.tasks import send_email_with_context
from configuration.models import SiteConfiguration

from celery import shared_task

from commerce.models import Product
import datetime


@shared_task
def send_contact_me_email_task(client_email, message_content):
    config_email = SiteConfiguration.get_solo().contact_email
    recipient = config_email if config_email else "brunovontor@gmail.com"
    send_email_with_context(
        recipients=recipient,
        subject="Poptávka z kontaktního formuláře!!!",
        template_path="email/contact_me.html",
        context={
            "client_email": client_email,
            "message_content": message_content,
        },
    )


@shared_task
def send_newly_added_items_to_store_email_task_last_week():
    last_week_date = datetime.datetime.now() - datetime.timedelta(days=7)
    products_of_week = Product.objects.filter(
        include_in_week_summary_email=True,
        created_at__gte=last_week_date,
    )
    config = SiteConfiguration.get_solo()
    send_email_with_context(
        recipients=config.contact_email,
        subject="Nový produkt přidán do obchodu",
        template_path="email/advertisement/commerce/new_items_added_this_week.html",
        context={
            "products_of_week": products_of_week,
            "site_currency": config.currency,
        },
    )
