o
    £ý¸iš  ã                   @  sF   d Z ddlmZ ddlZddlmZmZ ddlmZ G dd„ dƒZdS )z=Queue manager abstraction prepared for RQ or Celery adoption.é    )ÚannotationsN)ÚdatetimeÚtimezone)ÚAnyc                   @  s    e Zd ZdZddœdd
d„ZdS )ÚQueueManagerzESubmit jobs through a stable API while the backend remains pluggable.Údefault)Ú
queue_nameÚjob_nameÚstrÚpayloadúdict[str, Any]r   Úreturnc                C  s&   t t ¡ ƒ|||dt tj¡ ¡ dœS )NÚqueued)Újob_idr	   r   r   ÚstatusÚ	queued_at)r
   ÚuuidÚuuid4r   Únowr   ÚutcÚ	isoformat)Úselfr	   r   r   © r   úplatform/jobs/queue_manager.pyÚenqueue   s   
úzQueueManager.enqueueN)r	   r
   r   r   r   r
   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   
   s    r   )	r   Ú
__future__r   r   r   r   Útypingr   r   r   r   r   r   Ú<module>   s    