o
    Ã¬cjQ  ã                   @   s   d dl mZ G dd„ dƒZdS )é    )Ú	CallStatec                   @   sŽ   e Zd Zddd„Zdeddfdd„ZdededB fd	d
„ZdededB fdd„Zdededdfdd„Z	de
e fdd„Zdeddfdd„ZdS )ÚCallRegistryÚreturnNc                 C   s   i | _ i | _d S ©N)Ú_callsÚ_channel_index©Úself© r
   ú8/var/www/html/bot-asterisk-ari/backend/calls/registry.pyÚ__init__   s   
zCallRegistry.__init__Úcallc                 C   s(   || j |j< |jD ]}|j| j|< q	d S r   )r   Úcall_idÚchannel_idsr   )r	   r   Úchr
   r
   r   Úadd	   s   
ÿzCallRegistry.addr   c                 C   s   | j  |¡S r   )r   Úget)r	   r   r
   r
   r   r      s   zCallRegistry.getÚ
channel_idc                 C   s    | j  |¡}|r| j |¡S d S r   )r   r   r   )r	   r   r   r
   r
   r   Úget_by_channel   s   zCallRegistry.get_by_channelc                 C   s   |  |¡ |j| j|< d S r   )Úadd_channelr   r   )r	   r   r   r
   r
   r   Úlink_channel   s   
zCallRegistry.link_channelc                 C   s   t | j ¡ ƒS r   )Úlistr   Úvaluesr   r
   r
   r   Úlist_all   s   zCallRegistry.list_allc                 C   s4   | j  |d ¡}|r|jD ]}| j |d ¡ qd S d S r   )r   Úpopr   r   )r	   r   r   r   r
   r
   r   Úremove   s   
þzCallRegistry.remove)r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   Ústrr   r   r   r   r   r   r
   r
   r
   r   r      s    
r   N)Úcalls.modelsr   r   r
   r
   r
   r   Ú<module>   s    