from django.urls import reverse
from urllib3 import request
from backoffice.models import *
from tixsell import settings
import stripe 
import json
from web3 import Web3
import os
import sendgrid
from toolz.itertoolz import unique
def run():
    events = Event.objects.filter(id="51769b5f-4d86-4588-92a9-e853b7d42c80")
    for event in events: 
        eventName=event.name 
        #Il faut recuperer tous les emails de ceux qui ont des tickets...
        emailTickets = Ticket.objects.filter(refTicketType__refEvent=event,status=1).values_list('refUser__email',flat=True)
        recipients = [{"email": email} for email in unique(emailTickets, key=lambda x: x) if email is not None]
        
        sg = sendgrid.SendGridAPIClient(settings.SENDGRID_API_KEY)
        data = {
                    "personalizations": [
                        {
                            "to": recipients,
                            "subject": "Votre événement SellTix",
                            "dynamic_template_data": {
                                "eventname":eventName
                            }
                        }
                    ],
                    "from": {
                        "email": "SellTix <contact@selltix.fr>"
                    },
                   
                    "template_id": settings.TEMPLATE_ID_RAPPELEVENT
                }
        print(data)
        response = sg.client.mail.send.post(request_body=data)
        print(response.status_code) 
        print(response.body)
        if response.status_code == 202:
            event.mailRappelSent=True
            event.save()
        else:
            pass
 