
    ZTh                        d Z ddlmZ ddlmZ ddl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 dd	lmZ dd
lmZ  G d de      Z G d dee      Z G d dee      Zy)z
Module containing optional metadata types to provide to Sift when uploading a file attachment.
Though optional, providing this information could help improve quality of renders on the Sift app.
    )annotations)datetime)AnyOptionalType)	Timestamp)ImageMetadata)VideoMetadata)Self)AsJson)
AsProtobufc                      e Zd Zy)MetadataN)__name__
__module____qualname__     e/home/www/backend.miabetepe.com/venv/lib/python3.12/site-packages/sift_py/file_attachment/metadata.pyr   r      s    r   r   c                  v    e Zd ZU dZded<   ded<   ded<   ded<   	 d	 	 	 	 	 	 	 dd
ZddZedd       ZddZ	y	)r
   z`
    Metadata for video media-types i.e. any mimetypes of the following pattern: `video/*`.
    intwidthheightfloatduration_secondsOptional[datetime]	timestampNc                <    || _         || _        || _        || _        y Nr   r   r   r   )selfr   r   r   r   s        r   __init__zVideoMetadata.__init__%   s!     
 0"r   c                    | j                   &t               }|j                  | j                          nd } || j                  | j                  | j
                  |      S Nr    )r   r   FromDatetimer   r   r   )r!   klasstimestamp_pbs      r   as_pbzVideoMetadata.as_pb-   sQ    >>%$;L%%dnn5L**;;!22"	
 	
r   c                     | |j                   |j                  |j                  |j                  j	                               S r$   )r   r   r   r   
ToDateTimeclsmessages     r   from_pbzVideoMetadata.from_pb;   s8    -->>$55''224	
 	
r   c                    | j                   d n| j                   j                         }| j                  | j                  | j                  |dS )N)r   r   r   r   )r   	isoformatr   r   r   )r!   r   s     r   as_jsonzVideoMetadata.as_jsonD   sC     NN2D8P8P8R	kkZZ $ 5 5"	
 	
r   r   )r   r   r   r   r   r   r   r   )r&   zType[VideoMetadataPb]returnVideoMetadataPb)r-   r3   r2   r   r2   r   
r   r   r   __doc____annotations__r"   r(   classmethodr.   r1   r   r   r   r
   r
      si     JK!! ae##"%#9>#K]#
 
 

r   r
   c                  P    e Zd ZU dZded<   ded<   d
dZddZedd       ZddZ	y	)r	   z`
    Metadata for image media-types i.e. any mimetypes of the following pattern: `image/*`.
    r   r   r   c                     || _         || _        y r   r   r   )r!   r   r   s      r   r"   zImageMetadata.__init__V   s    
r   c                >     || j                   | j                        S Nr;   r;   )r!   r&   s     r   r(   zImageMetadata.as_pbZ   s    **;;
 	
r   c                >     | |j                   |j                        S r=   r;   r+   s     r   r.   zImageMetadata.from_pb`   s    -->>
 	
r   c                4    | j                   | j                  dS )Nr   r   r@   )r!   s    r   r1   zImageMetadata.as_jsong   s    kkZZ
 	
r   N)r   r   r   r   )r&   zType[ImageMetadataPb]r2   ImageMetadataPb)r-   rA   r2   r   r4   r5   r   r   r   r	   r	   N   s6     JK
 
 

r   r	   N)r6   
__future__r   r   typingr   r   r   google.protobuf.timestamp_pb2r   %sift.remote_files.v1.remote_files_pb2r	   rA   r
   r3   typing_extensionsr   sift_py._internal.convert.jsonr   "sift_py._internal.convert.protobufr   r   r   r   r   <module>rI      sW   
 #  & & 3 # 1 9 v 0
J 0
f
J 
r   