
    4?i                     r    S SK r S SKJr  S SKJr  S SKJr  S SKJr  S\S\4S jr	S\S	\
4S
 jrS\S\4S jrg)    N)AsyncSession)select)Client)ClientCreatedbdatac                 L  #    S[         R                  " 5       R                  SS  3n[        UUR                  UR
                  S9nU R                  U5        U R                  5       I Sh  vN   U R                  U5      I Sh  vN   SUR                   S3Ul
        U$  N4 N7f)zC
Create a new client with a unique widget ID.
Fully async version.
zXRG-N   )client_widget_idwebsite_urlclient_namezM<script src="https://livechat.menuwing.net/widget-loader.js" data-client-id="z" async></script>)uuiduuid4hexr   r   r   addcommitrefreshr   
script_tag)r   r   	widget_id
new_clients       5/var/www/html/livechat/backend/app/services/client.pycreate_clientr   L   s      tzz|''+,-I"$$$$J FF:
))+
**Z
   %6677H	J    s$   A)B$+B ,B$B"B$"B$r   c                    #    U R                  [        [        5      R                  [        R                  U:H  5      5      I Sh  vN nUR                  5       $  N7f)z&
Async: Fetch client using widget ID.
N)executer   r   wherer   scalar_one_or_none)r   r   results      r   get_client_by_widgetr   i   sM      ::vV44	AB F $$&&   AAAA	client_idc                    #    U R                  [        [        5      R                  [        R                  U:H  5      5      I Sh  vN nUR                  5       $  N7f)z'
Async: Fetch client using numeric ID.
N)r   r   r   r   idr   )r   r    r   s      r   get_client_by_idr#   s   sK      ::vVYY)34 F $$&&r   )r   sqlalchemy.ext.asyncior   
sqlalchemyr   app.models.clientr   app.schemas.clientr   r   strr   intr#        r   <module>r,      sP   J  /  $ +L  :'< 'C ''| ' 'r+   