§
    ¤¬Âi	  ã                   óf  — d dl mZmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ  ed	d
g¬¦  «        Ze                     dee         ¬¦  «         ee	¦  «         ee¦  «        fdedefd„¦   «         Ze                     d¦  «         ee	¦  «         ee¦  «        fdedefd„¦   «         Ze                     dd¬¦  «         ee	¦  «         ee¦  «        fdededefd„¦   «         Ze                     dd¬¦  «         ee	¦  «         ee¦  «        fdedefd„¦   «         ZdS )é    )Ú	APIRouterÚDepends)ÚAsyncSession)ÚselectÚfunc)Úget_db)ÚNotification)ÚUser)ÚNotificationOut)Úget_current_userz/notificationsÚnotifications)ÚprefixÚtagsÚ )Úresponse_modelÚdbÚcurrent_userc              ƒ   ó|  K  — |                       t          t          ¦  «                             t          j        |j        k    ¦  «                             t          j                             ¦   «         ¦  «         	                    d¦  «        ¦  «        ƒ d {V —†}| 
                    ¦   «                              ¦   «         S )Né   )Úexecuter   r	   ÚwhereÚuser_idÚidÚorder_byÚ
created_atÚdescÚlimitÚscalarsÚall)r   r   Úresults      úA/var/www/html/jarvis.com/web/backend/app/routers/notifications.pyÚlist_notificationsr"      s    è è € ð
 —:’:Ý�|ÑÔß	Š�|Ô# |¤Ò6Ñ	7Ô	7ß	Š•,Ô)×.Ò.Ñ0Ô0Ñ	1Ô	1ß	Šˆr‰Œñ	ô ð ð ð ð ð ð €Fð �>Š>ÑÔ×ÒÑ!Ô!Ð!ó    z/unread-countc              ƒ   óî   K  — |                       t          t          j        ¦   «         ¦  «                             t
          j        |j        k    t
          j        dk    ¦  «        ¦  «        ƒ d {V —†}d|pdiS )NFÚcountr   )	Úscalarr   r   r%   r   r	   r   r   Úis_read)r   r   r%   s      r!   Úunread_countr(      sƒ   è è € ð
 —)’)Ý�tŒz‰|Œ|ÑÔ×"Ò"ÝÔ  L¤OÒ3ÝÔ  EÒ)ñ	
ô 	
ñô ð ð ð ð ð ð €Eð �U�Z˜aÐ Ð r#   z/{notif_id}/readéÌ   )Ústatus_codeÚnotif_idc              ƒ   ó¦  K  — |                      t          t          ¦  «                             t          j        | k    t          j        |j        k    ¦  «        ¦  «        ƒ d {V —†}|                     ¦   «         }|rT|j        sOd|_        	 |                     ¦   «         ƒ d {V —† d S # t          $ r | 
                    ¦   «         ƒ d {V —† ‚ w xY wd S d S )NT)r   r   r	   r   r   r   Úscalar_one_or_noner'   ÚcommitÚ	ExceptionÚrollback)r+   r   r   r    Únotifs        r!   Ú	mark_readr2   *   s  è è € ð —:’:Ý�|ÑÔ×"Ò"ÝŒO˜xÒ'ÝÔ  L¤OÒ3ñ	
ô 	
ñô ð ð ð ð ð ð €Fð ×%Ò%Ñ'Ô'€EØð �U”]ð ØˆŒð	Ø—)’)‘+”+ÐÐÐÐÐÐÐÐÐøÝð 	ð 	ð 	Ø—+’+‘-”-ÐÐÐÐÐÐÐØð	øøøð	ð ð ð s   Â
B& Â&&Cz	/read-allc              ƒ   óº  K  — |                       t          t          ¦  «                             t          j        |j        k    t          j        dk    ¦  «        ¦  «        ƒ d {V —†}|                     ¦   «                              ¦   «         }|D ]	}d|_        Œ
	 |  	                    ¦   «         ƒ d {V —† d S # t          $ r |                      ¦   «         ƒ d {V —† ‚ w xY w)NFT)r   r   r	   r   r   r   r'   r   r   r.   r/   r0   )r   r   r    ÚnotifsÚns        r!   Úmark_all_readr6   @   s
  è è € ð
 —:’:Ý�|ÑÔ×"Ò"ÝÔ  L¤OÒ3ÝÔ  EÒ)ñ	
ô 	
ñô ð ð ð ð ð ð €Fð �^Š^ÑÔ×!Ò!Ñ#Ô#€FØð ð ˆØˆŒ	ˆ	ðØ�iŠi‰kŒkÐÐÐÐÐÐÐÐÐøÝð ð ð Ø�kŠk‰mŒmÐÐÐÐÐÐÐØðøøøs   ÂB4 Â4&CN)Úfastapir   r   Úsqlalchemy.ext.asyncior   Ú
sqlalchemyr   r   Úapp.databaser   Úapp.models.notificationr	   Úapp.models.userr
   Úapp.schemas.notificationr   Úapp.depsr   ÚrouterÚgetÚlistr"   r(   ÚpostÚintr2   r6   © r#   r!   ú<module>rE      sM  ðØ &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø /Ð /Ð /Ð /Ð /Ð /Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #à Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø  Ð  Ð  Ð  Ð  Ð  Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø %Ð %Ð %Ð %Ð %Ð %à	ˆÐ*°/Ð1BÐ	CÑ	CÔ	C€ð ‡‚ˆB˜t OÔ4€Ñ5Ô5à�w˜v‘”Ø ˜Ð!1Ñ2Ô2ð
"ð 
"Øð
"àð
"ð 
"ð 
"ñ 6Ô5ð
"ð ‡‚ˆOÑÔà�w˜v‘”Ø ˜Ð!1Ñ2Ô2ð
!ð 
!Øð
!àð
!ð 
!ð 
!ñ Ôð
!ð ‡‚Ð¨S€Ñ1Ô1ð �w˜v‘”Ø ˜Ð!1Ñ2Ô2ðð Øðàðð ðð ð ñ 2Ô1ðð* ‡‚ˆ[ c€Ñ*Ô*à�w˜v‘”Ø ˜Ð!1Ñ2Ô2ðð Øðàðð ð ñ +Ô*ðð ð r#   