§
    Æ`j‰	  ã                   ó¨  — d Z ddlmZ ddlmZmZmZmZ ddlm	Z	 ddl
Z
ddlmZ ddlmZ ddlmZmZ dd	l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e¦  «        fdedefd„¦   «         Ze                     d¦  «         ee¦  «        fdedefd„¦   «         Ze                     d¦  «         ed¦  «         ee¦  «        fdedee         defd„¦   «         ZdS )uˆ   
Generated Videos â€“ list, detail, download, delete.
Download uses the Authorization header (passed as query param for browser links).
é    )ÚOptional)Ú	APIRouterÚDependsÚQueryÚHTTPException)ÚFileResponseN)Úrequire_auth)Úvideos_store)ÚokÚerr)Úcfg)Úverify_tokenú/é   )Úgeé   éd   )r   ÚleÚpageÚper_pageÚsearchÚstatusÚ_c              ƒ   ód   K  — t          j        |rd|ind |dg| |¬¦  «        }t          |¦  «        S )Nr   Útitle)Úfiltersr   Úsearch_fieldsr   r   )r
   Úlistr   )r   r   r   r   r   Úresults         úi/Users/priyanka/Documents/AI_Agent_Assessment/ai-video-generator-gols-v2-new/backend/app/routes/videos.pyÚlist_videosr!      sK   è è € õ ÔØ&,Ð6�˜6Ð"Ð"°$Ø g YØ˜Hðñ ô €Fõ
 ˆf‰:Œ:Ðó    z/{vid}Úvidc              ƒ   óp   K  — t          j        | ¦  «        }|rt          |¦  «        nt          dd¦  «        S )Nú	Not foundé”  )r
   Úgetr   r   )r#   r   Úvs      r    Ú	get_videor)   "   s5   è è € åÔ˜ÑÔ€AØÐ0�2ˆa‰5Œ5ˆ5�3˜{¨CÑ0Ô0Ð0r"   c              ƒ   óÀ  K  — t          j        | ¦  «        }|st          dd¦  «        S t          j                             t          j        |                     dd¦  «        ¦  «        }t          j                             |¦  «        r&	 t          j	        |¦  «         n# t          $ r Y nw xY wt          j        | ¦  «        rt          d d¦  «        nt          dd¦  «        S )Nr%   r&   ÚfilenameÚ ÚDeleted)r
   r'   r   ÚosÚpathÚjoinr   Ú
OUTPUT_DIRÚexistsÚremoveÚ	ExceptionÚdeleter   )r#   r   r(   Ú	file_paths       r    Údelete_videor7   (   sÑ   è è € åÔ˜ÑÔ€AØð %Ý�; Ñ$Ô$Ð$å”—’�Sœ^¨Q¯UªU°:¸rÑ-BÔ-BÑCÔC€IÝ	„w‡~‚~�iÑ Ô ð ð	ÝŒI�iÑ Ô Ð Ð øÝð 	ð 	ð 	ØˆDð	øøøå".Ô"5°cÑ":Ô":ÐU�2ˆd�IÑÔÐÅÀKÐQTÑ@UÔ@UÐUs   ÂB Â
B)Â(B)z/{vid}/downloadÚtokenc           	   ƒ   ój  K  — t          j        | ¦  «        }|st          dd¬¦  «        ‚|                     dd¦  «        }t          j                             t          j        |¦  «        }|rt          j                             |¦  «        st          dd¬¦  «        ‚t          |d|dd	|› d
�i¬¦  «        S )zx
    Download the generated MP4.
    Auth via Bearer header OR ?token=<jwt> query param (for direct browser links).
    r&   zVideo not found)Ústatus_codeÚdetailr+   r,   zVideo file not found on diskz	video/mp4zContent-Dispositionzattachment; filename="ú")r/   Ú
media_typer+   Úheaders)
r
   r'   r   r.   r/   r0   r   r1   r2   r   )r#   r8   r   r(   r+   r6   s         r    Údownloadr?   7   sÆ   è è € õ 	Ô˜ÑÔ€AØð GÝ¨Ð4EÐFÑFÔFÐFà�uŠu�Z Ñ$Ô$€HÝ”—’�Sœ^¨XÑ6Ô6€Iàð T�2œ7Ÿ>š>¨)Ñ4Ô4ð TÝ¨Ð4RÐSÑSÔSÐSåØØØØ&Ð(LÀÐ(LÐ(LÐ(LÐMð	ñ ô ð r"   )Ú__doc__Útypingr   Úfastapir   r   r   r   Úfastapi.responsesr   r.   Úapp.middleware.authr	   Úapp.repository.storer
   Úapp.utils.responser   r   Ú
app.configr   Úapp.utils.jwtr   Úrouterr'   ÚintÚstrr!   r)   r5   r7   r?   © r"   r    ú<module>rM      sŽ  ððð ð Ð Ð Ð Ð Ð Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø *Ð *Ð *Ð *Ð *Ð *Ø 	€	€	€	Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø -Ð -Ð -Ð -Ð -Ð -Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &à	ˆ‰Œ€ð ‡‚ˆC�„à��a˜A�‘”Ø�E˜"  sÐ+Ñ+Ô+Ø!˜E $™KœKØ!˜E $™KœKØˆW�\Ñ"Ô"ðð Ø
ðàðð �SŒMðð �SŒMð	ð
 ðð ð ñ „ðð ‡‚ˆHÑÔØ'. w¨|Ñ'<Ô'<ð 1ð 1˜ð 1 ð 1ð 1ð 1ñ Ôð1ð
 ‡‚ˆxÑÔØ*1¨'°,Ñ*?Ô*?ð Vð V˜Cð V Cð Vð Vð Vñ ÔðVð ‡‚ÐÑÔð !˜5 ™;œ;ØˆW�\Ñ"Ô"ðð Ø	ðà�CŒ=ðð ðð ð ñ Ôðð ð r"   