+
    lÉjÜ  ã                   ó²  € R t ^ RIt^ RIt^ RIHt ^ RIHtHtHtH	t	H
t
Ht ^ RIHt ^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ]! 4       t]P1                  R	4      ]! ^^R
7      ]! ^^^dR7      ]! R4      ]! R4      ]! ]4      3R R ll4       t]P5                  R	4      ]! R4      ]! R4      ]! R4      ]! R4      ]! R4      ]! R4      ]! R4      ]! R4      ]
! R4      ]! ]4      3
R R ll4       t]P1                  R4      ]! ]4      3R R ll4       t]P;                  R4      ]! ]4      3R R ll4       t]P?                  R4      ]! ]4      3R R ll4       t R# )u'   Avatars â€“ full CRUD with file upload.N)ÚOptional)Ú	APIRouterÚDependsÚQueryÚ
UploadFileÚFileÚForm)Úrequire_auth)Úavatars_store)ÚAvatarUpdate)ÚokÚerr)ÚcfgÚ/)Úge)r   Úlec          
      ó€   € V ^8„  d   QhR\         R\         R\        \        ,          R\        \        ,          R\        /# )é   ÚpageÚper_pageÚsearchÚstatusÚ_)Úintr   Ústr)Úformats   "ÚDD:\Python_Codes\gen_ai\new\gols-v2-new\backend\app\routes\avatars.pyÚ__annotate__r      sB   € ÷ ñ Ü
ðäðô ”S�Mðô ”S�Mð	ô
 ñó    c              ƒ   ór   "  € V'       d   R V/MRp\         P                  ! WRRR.WR7      p\        V4      # 5i)r   NÚnameÚdescription)Úfiltersr   Úsearch_fieldsr   r   )r
   Úlistr   )r   r   r   r   r   r"   Úresults   &&&&&  r   Úlist_avatarsr&      s?   é € ÷ %+ˆx˜Ñ °€GÜ×ÒØØ˜}Ð-Øô€Fô
 ˆf‹:Ðùó   ‚57.Ú ÚphotoÚpiperÚliveportraitÚwav2lipTc                ó¦   € V ^8„  d   QhR\         R\         R\         R\         R\         R\         R\        R\         R	\        \        ,          R
\         /
# )r   r    r!   Úsource_typeÚvoice_engineÚface_engineÚ
lip_engineÚenhanceÚtagsÚfiler   )r   Úboolr   r   )r   s   "r   r   r       sq   € ÷ '(ñ '(Ü
ð'(äð'(ô ð'(ô ð	'(ô
 ð'(ô ð'(ô ð'(ô ð'(ô ”:Õ
ð'(ô ñ'(r   c
              ƒ   ól  "  € R p
V'       Ed   \         P                  P                  VP                  ;'       g    R4      ^,          p\        P
                  ! 4        V 2p\         P                  P                  \        P                  V4      p\         P                  ! \        P                  RR7       VP                  4       G R j  x€L
 p\        V4      R8”  d   \        R4      # \        VR4      ;_uu_ 4       pVP                  V4       R R R 4       RV 2p
\        P                   ! RT RTR	TR
TRTRTRTRVP#                  R4       Uu. uF+  pVP%                  4       '       g   K  VP%                  4       NK-  	  upRRRV
RR R^ /4      p\'        VR4      #  LÑ  + '       g   i     L–; iu upi 5i)Nr(   T)Úexist_okzFile too large (max 100MB)Úwbz	/uploads/r    r!   r.   r/   r0   r1   r2   r3   Ú,r   ÚreadyÚ
source_urlÚthumbnail_urlÚvideo_countzAvatar createdi  @)ÚosÚpathÚsplitextÚfilenameÚuuidÚuuid4Újoinr   Ú
UPLOAD_DIRÚmakedirsÚreadÚlenr   ÚopenÚwriter
   ÚcreateÚsplitÚstripr   )r    r!   r.   r/   r0   r1   r2   r3   r4   r   Úfile_urlÚextÚfnameÚdestÚcontentÚf_outÚtÚavatars   &&&&&&&&&&        r   Úcreate_avatarrV      sb  é € ð €Hß€tÜ�g‰g×Ñ˜tŸ}™}×2Ð2°Ó3°AÕ6ˆÜ—:’:“<�.  Ð&ˆÜ�w‰w�|‰|œCŸN™N¨EÓ2ˆÜ
�Š”C—N‘N¨TÕ2ØŸ	™	›×#ˆÜˆw‹<Ð+Ô+ÜÐ3Ó4Ð4Ü�$˜×Ô Ø�K‰K˜Ô ÷ à˜u˜gÐ&ˆä×!Ò!Ø�Ø�{Ø�{Ø˜Ø�{Ø�jØ�7Ø D§J¡J¨s¤OÓA¡O˜q°q·w±w·y”�—‘–¡OÑAØ�'Ø�hØ˜Ø�qð#ó €Fô ˆfÐ&Ó'Ð'ñ+ $÷ ×üò BùsA   ‚7F4ºBF4ÃFÃ	3F4Ã<FÄ?F4ÅF/&Å*F/&Å>F4ÆF,	Æ'F4z/{avatar_id}c                ó0   € V ^8„  d   QhR\         R\         /# ©r   Ú	avatar_idr   ©r   )r   s   "r   r   r   K   s   € ÷ ñ ¤ð ¬ñ r   c              ƒ   ót   "  € \         P                  ! V 4      pV'       g   \        R R4      # \        V4      # 5i)úAvatar not foundé”  )r
   Úgetr   r   )rY   r   Úavs   && r   Ú
get_avatarr`   J   s/   é € ä	×	Ò	˜9Ó	%€BßÜÐ% sÓ+Ð+Üˆb‹6€Mùs   ‚68c                ó<   € V ^8„  d   QhR\         R\        R\         /# )r   rY   Úbodyr   )r   r   )r   s   "r   r   r   S   s!   € ÷ $ñ $¤3ð $¬lð $¼sñ $r   c              ƒ   óð   "  € VP                  4       P                  4        UUu/ uF  w  r4Vf   K  W4bK  	  ppp\        P                  ! W4      pV'       g   \	        RR4      # \        VR4      # u uppi 5i)Nr\   r]   zAvatar updated)Ú
model_dumpÚitemsr
   Úupdater   r   )rY   rb   r   ÚkÚvÚupdatesr_   s   &&&    r   Úupdate_avatarrj   R   sh   é € à $§¡Ó 1× 7Ñ 7Ô 9ÔKÑ 9™˜¸QŒtˆqŠtÑ 9€GÑKÜ	×	Ò	˜iÓ	1€BßÜÐ% sÓ+Ð+ÜˆbÐ"Ó#Ð#ùó	 Lùs   ‚"A6¤A0±A0·?A6c                ó0   € V ^8„  d   QhR\         R\         /# rX   rZ   )r   s   "r   r   r   \   s   € ÷ &ñ &¤3ð &¬3ñ &r   c              ƒ   ór   "  € \         P                  ! V 4      '       g   \        R R4      # \        RR4      # 5i)r\   r]   NzAvatar deleted)r
   Údeleter   r   )rY   r   s   &&r   Údelete_avatarrn   [   s2   é € ä×Ò 	×*Ò*ÜÐ% sÓ+Ð+ÜˆdÐ$Ó%Ð%ùr'   )!Ú__doc__r>   rB   Útypingr   Úfastapir   r   r   r   r   r   Úapp.middleware.authr	   Úapp.repository.storer
   Úapp.schemas.schemasr   Úapp.utils.responser   r   Ú
app.configr   Úrouterr^   r&   ÚpostrV   r`   Úputrj   rm   rn   © r   r   Ú<module>r{      sF  ðÙ -ß Ý ß E× EÝ ,Ý .Ý ,ß &Ý á	‹€ð ‡�ˆCƒá�a˜A”Ù˜"  sÔ+Ù! $›KÙ! $›KÙ�\Ó"öó ðð  ‡�ˆSÓá�S“	Ù˜B“xÙ˜G“}Ù˜W›Ù˜NÓ+Ù˜9“oÙ˜“JÙ�R“Ù!% d£Ù�\Ó"ö'(ó ð'(ðT ‡�ˆNÓÙ.5°lÓ.Cö ó ðð ‡�ˆNÓÙELÈ\ÓEZö $ó ð$ð ‡�ˆ~ÓÙ18¸Ó1Fö &ó ò&r   