§
    lÉ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                     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                     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e	         defd&„¦   «         Ze                     d'¦  «         ee¦  «        fd(edefd)„¦   «         Ze                      d'¦  «         ee¦  «        fd(ed*edefd+„¦   «         Z!e "                    d'¦  «         ee¦  «        fd(edefd,„¦   «         Z#dS )-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              ƒ   ój   K  — |rd|ind }t          j        ||ddg| |¬¦  «        }t          |¦  «        S )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#      sS   è è € ð %+Ð4ˆx˜Ð Ð °€GÝÔØ Ø˜}Ð-Ø˜Hðñ ô €Fõ
 ˆf‰:Œ:Ðó    .Ú ÚphotoÚpiperÚliveportraitÚwav2lipTr   r   Úsource_typeÚvoice_engineÚface_engineÚ
lip_engineÚenhanceÚtagsÚfilec
              ƒ   óÂ  K  — d }
|�rt           j                             |j        pd¦  «        d         }t	          j        ¦   «         › |› �}t           j                             t          j        |¦  «        }t          j	        t          j        d¬¦  «         | 
                    ¦   «         ƒ d {V —†}t          |¦  «        dk    rt          d¦  «        S t          |d¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   d|› �}
t          j        | ||||||d	„ |                     d
¦  «        D ¦   «         d|
d ddœ¦  «        }t%          |d¦  «        S )Nr%   r   T)Úexist_oki  @zFile too large (max 100MB)Úwbz	/uploads/c                 ó^   — g | ]*}|                      ¦   «         ¯|                      ¦   «         ‘Œ+S © )Ústrip)Ú.0Úts     r"   ú
<listcomp>z!create_avatar.<locals>.<listcomp>A   s-   € ÐAÐAÐA˜q°q·w²w±y´yÐA�—’‘”ÐAÐAÐAr$   ú,Úreadyr   )r   r   r*   r+   r,   r-   r.   r/   r   Ú
source_urlÚthumbnail_urlÚvideo_countzAvatar created)ÚosÚpathÚsplitextÚfilenameÚuuidÚuuid4Újoinr   Ú
UPLOAD_DIRÚmakedirsÚreadÚlenr   ÚopenÚwriter   ÚcreateÚsplitr   )r   r   r*   r+   r,   r-   r.   r/   r0   r   Úfile_urlÚextÚfnameÚdestÚcontentÚf_outÚavatars                    r"   Úcreate_avatarrU      s¦  è è € ð €HØñ 
'ÝŒg×Ò˜tœ}Ð2°Ñ3Ô3°AÔ6ˆÝ”:‘<”<Ð& Ð&Ð&ˆÝŒw�|Š|�CœN¨EÑ2Ô2ˆÝ
Œ•C”N¨TÐ2Ñ2Ô2Ð2ØŸ	š	™œÐ#Ð#Ð#Ð#Ð#Ð#ˆÝˆw‰<Œ<Ð+Ò+Ð+ÝÐ3Ñ4Ô4Ð4Ý�$˜ÑÔð 	! Ø�KŠK˜Ñ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!à&˜uÐ&Ð&ˆåÔ!ØØ"Ø"Ø$Ø"Ø ØØAÐA D§J¢J¨s¡O¤OÐAÑAÔAØØØØð#ð #ñ ô €Fõ ˆfÐ&Ñ'Ô'Ð's   Ã!DÄDÄ
Dz/{avatar_id}Ú	avatar_idc              ƒ   óp   K  — t          j        | ¦  «        }|st          dd¦  «        S t          |¦  «        S )NúAvatar not foundé”  )r   Úgetr   r   )rV   r   Úavs      r"   Ú
get_avatarr\   J   s:   è è € å	Ô	˜9Ñ	%Ô	%€BØð ,ÝÐ% sÑ+Ô+Ð+Ýˆb‰6Œ6€Mr$   Úbodyc              ƒ   óÔ   K  — d„ |                      ¦   «                              ¦   «         D ¦   «         }t          j        | |¦  «        }|st	          dd¦  «        S t          |d¦  «        S )Nc                 ó   — i | ]
\  }}|®||“ŒS )Nr5   )r7   ÚkÚvs      r"   ú
<dictcomp>z!update_avatar.<locals>.<dictcomp>T   s   € ÐKÐKÐK™˜˜1¸Q¸]ˆq�!¸]¸]¸]r$   rX   rY   zAvatar updated)Ú
model_dumpÚitemsr   Úupdater   r   )rV   r]   r   Úupdatesr[   s        r"   Úupdate_avatarrg   R   sk   è è € àKÐK §¢Ñ 1Ô 1× 7Ò 7Ñ 9Ô 9ÐKÑKÔK€GÝ	Ô	˜i¨Ñ	1Ô	1€BØð ,ÝÐ% sÑ+Ô+Ð+ÝˆbÐ"Ñ#Ô#Ð#r$   c              ƒ   ón   K  — t          j        | ¦  «        st          dd¦  «        S t          d d¦  «        S )NrX   rY   zAvatar deleted)r   Údeleter   r   )rV   r   s     r"   Údelete_avatarrj   [   s;   è è € åÔ 	Ñ*Ô*ð ,ÝÐ% sÑ+Ô+Ð+ÝˆdÐ$Ñ%Ô%Ð%r$   )$Ú__doc__r?   rC   Útypingr   Úfastapir   r   r   r   r   r	   Úapp.middleware.authr
   Úapp.repository.storer   Úapp.schemas.schemasr   Úapp.utils.responser   r   Ú
app.configr   ÚrouterrZ   ÚintÚstrr#   ÚpostÚboolrU   r\   Úputrg   ri   rj   r5   r$   r"   ú<module>ry      sv  ðØ -Ð -Ø €€€€€€€Ø Ð Ð Ð Ð Ð Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø .Ð .Ð .Ð .Ð .Ð .Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð à	ˆ‰Œ€ð ‡‚ˆC�„à��a˜A�‘”Ø�E˜"  sÐ+Ñ+Ô+Ø!˜E $™KœKØ!˜E $™KœKØˆW�\Ñ"Ô"ðð Ø
ðàðð �SŒMðð �SŒMð	ð
 ðð ð ñ „ðð  ‡‚ˆSÑÔà��S‘	”	Ø�t˜B‘x”xØ�t˜G‘}”}Ø˜˜W™œØ�t˜NÑ+Ô+Ø�d˜9‘o”oØ�D˜‘J”JØ��R‘”Ø!%  d¡¤ØˆW�\Ñ"Ô"ð'(ð '(Ø
ð'(àð'(ð ð'(ð ð	'(ð
 ð'(ð ð'(ð ð'(ð ð'(ð �:Ô
ð'(ð ð'(ð '(ð '(ñ Ôð'(ðT ‡‚ˆNÑÔØ.5¨g°lÑ.CÔ.Cð ð  ð ¨ð ð ð ñ Ôðð ‡‚ˆNÑÔØELÀWÈ\ÑEZÔEZð $ð $ 3ð $¨lð $¸sð $ð $ð $ñ Ôð$ð ‡‚ˆ~ÑÔØ18°¸Ñ1FÔ1Fð &ð & 3ð &¨3ð &ð &ð &ñ Ôð&ð &ð &r$   