
    h                     N    d dl mZmZ d dlmZmZmZmZ d dlm	Z	  G d de      Z
y)    )ABCabstractmethod)ListDictAnyOptional)
UploadFilec            
           e Zd Zededee   deeef   fd       Z	ededefd       Z
ededefd       Zededee   fd       Zedded	edeeef   fd
       Zeddededeeef   fd       Zy)StorageInterfacefolder_pathfilesreturnc                    K   yw)uL   Guarda archivos en el storage y retorna información de los archivos subidosN )selfr   r   s      Q/var/www/dev.api.imparables.com.co/api_imparables/landing/storage/base_storage.py
save_fileszStorageInterface.save_files         	   	file_pathc                    K   yw)u%   Obtiene la URL pública de un archivoNr   r   r   s     r   get_file_urlzStorageInterface.get_file_url   r   r   c                    K   yw)zElimina un archivo del storageNr   r   s     r   delete_filezStorageInterface.delete_file   r   r   c                    K   yw)z'Lista todos los archivos en una carpetaNr   )r   r   s     r   
list_fileszStorageInterface.list_files   r   r   	max_filesc                    K   yw)z8Lista archivos con metadatos (sin generar URLs firmadas)Nr   )r   r   r   s      r   list_files_with_metadataz)StorageInterface.list_files_with_metadata   r   r   s3_key
expirationc                    K   yw)u2   Genera una URL firmada para un archivo específicoNr   )r   r!   r"   s      r   get_signed_urlzStorageInterface.get_signed_url   r   r   N)   )i,  )__name__
__module____qualname__r   strr   r	   r   r   r   r   boolr   r   intr    r$   r       r   r   r      s   C Z8H TRUWZRZ^   C C   3 4   C DI   # # VZ[^`c[cVd   3 C $sTWx.  r,   r   N)abcr   r   typingr   r   r   r   fastapir	   r   r   r,   r   <module>r0      s    # , , s r,   