o
    ^cqh                     @   s   d dl mZmZ d dlmZmZmZ d dlZd dlZd dl	Z	d dl
Z
d dlmZmZ G dd deZdZejedd	 ed
fdefddZdefddZdS )    )	BaseModelField)FileHTTPException
UploadFileN)extract_textprocess_imagec                   @   s   e Zd ZU eed< dS )	ImagePath
image_pathN)__name__
__module____qualname__str__annotations__ r   r   SC:\Users\Equipo\Documents\GitHub\reconocimiento-facial-lambda\src\service\cedula.pyr	   	   s   
 r	   Ztemp_imagesT)exist_ok.filec              
      s   | j dstdddt j d| j }tj	t
|}t|d}t| j| W d   n1 s6w   Y  z)zt|}|W W tj|rPt| S S  tyd } ztdt|dd}~ww tj|rqt| w w )	ub   
    Endpoint para procesar una imagen enviada directamente y detectar cédulas de identidad.
    zimage/i  zEl archivo debe ser una imagen.status_codedetail_wbNi  )content_type
startswithr   uuiduuid4hexfilenameospathjoinTEMP_IMAGE_DIRopenshutilcopyfileobjr   r   existsremove	Exceptionr   )r   r   r
   bufferresulter   r   r   process_image_endpoint   s*   r,   datac                 C   s8   | j }tj|stdddt|}t|}d|iS )zL
    Endpoint para extraer texto de una imagen completa utilizando OCR.
    i  z-La imagen no existe en la ruta proporcionada.r   Zextracted_textN)r
   r   r    r&   r   cv2imreadr   )r-   r
   imagetextr   r   r   extract_text_endpoint)   s   
r2   )pydanticr   r   fastapir   r   r   r   r$   r   r.   Z#src.validators.validateidentitycardr   r   r	   r"   makedirsr,   r2   r   r   r   r   <module>   s    