Ë
    û?j+  ã                   ó  — d Z ddlZddlZddlmZ ddlmZmZmZm	Z	m
Z
mZ ddlmZ ddlmZ ddlmZ ddlmZmZ dd	lmZ  e«       Zej1                  d
«       edd¬«       eddd¬«       ed«       ed«       ee«      fdededee   dee   def
d„«       Zej9                  d
«       ed«       ed«       ed«       ed«       ed«       ed«       ed«       ed«       ed«       e
d«       ee«      fdeded ed!ed"ed#ed$ed%ed&ed'ee	   defd(„«       Zej1                  d)«       ee«      fd*edefd+„«       ZejA                  d)«       ee«      fd*ed,edefd-„«       Z!ejE                  d)«       ee«      fd*edefd.„«       Z#y)/u'   Avatars â€“ full CRUD with file upload.é    N)ÚOptional)Ú	APIRouterÚDependsÚQueryÚ
UploadFileÚFileÚForm)Úrequire_auth)Úavatars_store)ÚAvatarUpdate)ÚokÚerr)ÚcfgÚ/é   )Úgeé   éd   )r   ÚleÚpageÚper_pageÚsearchÚstatusÚ_c              ƒ   óh   K  — |rd|ind }t        j                  ||ddg| |¬«      }t        |«      S ­w)Nr   ÚnameÚdescription)Úfiltersr   Úsearch_fieldsr   r   )r   Úlistr   )r   r   r   r   r   r   Úresults          új/Users/priyanka/Documents/AI_Agent_Assessment/ai-video-generator-gols-v2-new/backend/app/routes/avatars.pyÚlist_avatarsr#      sD   è ø€ ñ %+ˆx˜Ñ °€GÜ×ÑØ Ø˜}Ð-Ø˜Hô€Fô
 ˆf‹:Ðùs   ‚02.Ú ÚphotoÚopenaiÚfemaleÚliveportraitÚwav2lipTr   r   Úsource_typeÚvoice_engineÚvoice_genderÚface_engineÚ
lip_engineÚenhanceÚtagsÚfilec              ƒ   óü  K  — d }|	r÷t         j                  j                  |	j                  xs d«      d   }t	        j
                  «       › |› �}t         j                  j                  t        j                  |«      }t        j                  t        j                  d¬«       |	j                  «       ƒ d {  –—† }t        |«      dkD  rt        d«      S t        |d«      5 }|j                  |«       d d d «       d|› �}t        j                   | ||||||||j#                  d	«      D �cg c]#  }|j%                  «       sŒ|j%                  «       ‘Œ% c}d
|d ddœ«      }t'        |d«      S 7 Œ³# 1 sw Y   Œ{xY wc c}w ­w)Nr$   r   T)Úexist_oki  @zFile too large (max 100MB)Úwbz	/uploads/Ú,Úreadyr   )r   r   r*   r+   r,   r-   r.   r/   r0   r   Ú
source_urlÚthumbnail_urlÚvideo_countzAvatar created)ÚosÚpathÚsplitextÚfilenameÚuuidÚuuid4Újoinr   Ú
UPLOAD_DIRÚmakedirsÚreadÚlenr   ÚopenÚwriter   ÚcreateÚsplitÚstripr   )r   r   r*   r+   r,   r-   r.   r/   r0   r1   r   Úfile_urlÚextÚfnameÚdestÚcontentÚf_outÚtÚavatars                      r"   Úcreate_avatarrR      sE  è ø€ ð €HÙÜ�g‰g×Ñ˜tŸ}™}Ò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¡J¨s¤OÓA¡O˜q°q·w±wµy�—‘• OÑAØØØØñ#ó €Fô ˆfÐ&Ó'Ð'ð- $ø÷ Ðüò Bùs<   ‚B3E<Â5E)Â6)E<ÃE+Ã17E<Ä(E7Ä>E7ÅE<Å+E4Å0E<z/{avatar_id}Ú	avatar_idc              ƒ   óf   K  — t        j                  | «      }|st        dd«      S t        |«      S ­w)NúAvatar not foundé”  )r   Úgetr   r   )rS   r   Úavs      r"   Ú
get_avatarrY   L   s0   è ø€ ä	×	Ñ	˜9Ó	%€BÙÜÐ% sÓ+Ð+Üˆb‹6€Mùs   ‚/1Úbodyc              ƒ   óÞ   K  — |j                  «       j                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}t        j                  | |«      }|st	        dd«      S t        |d«      S c c}}w ­w)NrU   rV   zAvatar updated)Ú
model_dumpÚitemsr   Úupdater   r   )rS   rZ   r   ÚkÚvÚupdatesrX   s          r"   Úupdate_avatarrb   T   so   è ø€ à $§¡Ó 1× 7Ñ 7Ô 9ÔKÑ 9™˜˜1¸Q¹]ˆq�!‰tÐ 9€GÑKÜ	×	Ñ	˜i¨Ó	1€BÙÜÐ% sÓ+Ð+ÜˆbÐ"Ó#Ð#ùó	 Lùs   ‚"A-¤
A'¯A'´9A-c              ƒ   ód   K  — t        j                  | «      st        dd«      S t        d d«      S ­w)NrU   rV   zAvatar deleted)r   Údeleter   r   )rS   r   s     r"   Údelete_avatarre   ]   s0   è ø€ ä×Ñ 	Ô*ÜÐ% sÓ+Ð+ÜˆdÐ$Ó%Ð%ùs   ‚.0)$Ú__doc__r:   r>   Útypingr   Úfastapir   r   r   r   r   r	   Úapp.middleware.authr
   Úapp.repository.storer   Úapp.schemas.schemasr   Úapp.utils.responser   r   Ú
app.configr   ÚrouterrW   ÚintÚstrr#   ÚpostÚboolrR   rY   Úputrb   rd   re   © ó    r"   Ú<module>rv      s#  ðÙ -ß Ý ß E× EÝ ,Ý .Ý ,ß &Ý á	‹€ð ‡�ˆCƒá�a˜A”Ù˜"  sÔ+Ù! $›KÙ! $›KÙ�\Ó"ñØ
ðàðð �S‰Mðð �S‰Mð	ð
 òó ðð  ‡�ˆSÓá�S“	Ù˜B“xÙ˜G“}Ù˜X›Ù˜X›Ù˜NÓ+Ù˜9“oÙ˜“JÙ�R“Ù!% d£Ù�\Ó"ñ)(Ø
ð)(àð)(ð ð)(ð ð	)(ð
 ð)(ð ð)(ð ð)(ð ð)(ð ð)(ð �:Ñ
ð)(ð ò)(ó ð)(ðX ‡�ˆNÓÙ.5°lÓ.Cñ  ð ¨ò ó ðð ‡�ˆNÓÙELÈ\ÓEZñ $ 3ð $¨lð $¸sò $ó ð$ð ‡�ˆ~ÓÙ18¸Ó1Fñ & 3ð &¨3ò &ó ñ&ru   