o
    GY)j                     @  sl   d Z ddlmZ ddlZddlZddlZddlmZmZ ddl	Z	e
eZdddZdd
dZdddZdS )z9Publish per-call analytics jobs (event-driven after STT).    )annotationsN)AnyDictreturnboolc                   C  s   t dd dvS )zVWhen true, STT publishes analytics_jobs and orchestrator skips inline batch analytics.STT_ENQUEUE_ANALYTICS_ALWAYS1)0falseno)osgetenvlower r   r   :/home/aiteam/pcaa-dev/dashboard-backend/analytics_queue.pyevent_driven_analytics_enabled   s   r   strc                   C  s   t ddS )NRABBITMQ_ANALYTICS_QUEUEanalytics_jobs)r   r   r   r   r   r   analytics_queue_name   s   r   bidcall_idc              
   C  s  t |  } t | }| r|sdS | |d}tdd}ttdd}tdd}td	d}t }z:ttj||t	||d
d}|
 }	|	j|dd |	jd|t|tjddd |  td| || W dS  ty }
 ztd| ||
 W Y d}
~
dS d}
~
ww )z?Enqueue analytics for one call. Returns False if publish fails.F)r   r   RABBITMQ_HOST	localhostRABBITMQ_PORT5672RABBITMQ_USERguestRABBITMQ_PASSWORDiX  )hostportcredentials	heartbeatT)queuedurable    )delivery_mode)exchangerouting_keybody
propertiesz%[%s/%s] Published analytics job to %sz+[%s/%s] Failed to publish analytics job: %sN)r   stripr   r   intr   pikaBlockingConnectionConnectionParametersPlainCredentialschannelqueue_declarebasic_publishjsondumpsBasicPropertiescloseloggerinfo	Exceptionwarning)r   r   payloadr   r    userpasswordr#   connr2   excr   r   r   publish_analytics_job   sF   


rB   )r   r   )r   r   )r   r   r   r   r   r   )__doc__
__future__r   r5   loggingr   typingr   r   r.   	getLogger__name__r9   r   r   rB   r   r   r   r   <module>   s    


