o
    ˷e	                     @   s`   d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 dd ZG d	d
 d
eZdS )    )defaultdictN)BaseCommand)settings)SESStat)stats_to_listc                   C   s   dddddS )Nr   delivery_attemptsbounces
complaintsrejects r   r   r   h/var/www/ideatree/venv/lib/python3.10/site-packages/django_ses/management/commands/get_ses_statistics.pystat_factory   s
   r   c                   @   s   e Zd ZdZdd ZdS )CommandzJ
    Get SES sending statistic and store the result, grouped by date.
    c              	   O   s\  t jdtjtjtjtjtjtjd}|	 }t
|dd}tt}|D ]H}t|d }t|d }	t|d }
t|d }|d	  }|| d
  |7  < || d  |	7  < || d  |
7  < || d  |7  < q"| D ]<\}}tjj||d
 |d |d |d dd\}}|s|j|d
 kr|d
 |_|d |_|d |_|d |_|  qod S )Nses)aws_access_key_idaws_secret_access_keyaws_session_tokenregion_nameendpoint_urlconfigF)localizeDeliveryAttemptsBounces
ComplaintsRejects	Timestampr   r	   r
   r   r   )datedefaults)boto3clientr   
ACCESS_KEY
SECRET_KEYSESSION_TOKENAWS_SES_REGION_NAMEAWS_SES_REGION_ENDPOINT_URLAWS_SES_CONFIGget_send_statisticsr   r   r   intr   itemsr   objectsget_or_creater   r	   r
   r   save)selfargsoptions
connectionstatsdata_points
stats_dictdataattemptsr	   r
   r   r   kvstatcreatedr   r   r   handle   sN   	





zCommand.handleN)__name__
__module____qualname____doc__r:   r   r   r   r   r      s    r   )collectionsr   r   django.core.management.baser   
django_sesr   django_ses.modelsr   django_ses.viewsr   r   r   r   r   r   r   <module>   s   	