o
    pj                     @  sR   d Z ddlmZ ddlZddlmZmZ ddl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)Any)consumec                   @  s$   e Zd ZdZdddddddZdS )QueueManagerzESubmit jobs through a stable API while the backend remains pluggable.defaultN)
queue_name	tenant_idapp_idjob_namestrpayloaddict[str, Any]r	   r
   
str | Noner   returnc                C  s@   |rt ||d||dd tt |||dttj dS )Njobs)r   r	   )r
   r   metricmetadataqueued)job_idr   r	   r   status	queued_at)	r   r   uuiduuid4r   nowr   utc	isoformat)selfr   r   r	   r
   r    r   %bridge_platform/jobs/queue_manager.pyenqueue   s   
zQueueManager.enqueue)r   r   r   r   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   bridge_platform.quotas.servicer   r   r   r   r   r    <module>   s    