o
    2i	                     @  sH   d dl mZ d dlmZmZmZmZ ddlmZm	Z	 G dd deZ
dS )    )annotations)AnyDictListOptional   )ZoneZoneOperationc                   @  s4   e Zd ZdZdZdZedddZ	ddddZdS )LastUpdateZone
lastupdate
LastUpdateuH   Operaciones de última actualización (health-check / sync incremental).returnList[ZoneOperation]c                 C  s(   t ddddt ddddt dd	d
dgS )Nget_lastupdate_sinceGet lastupdate sincez+Devuelve cambios desde una fecha/hora dada.)codelabeldescriptionget_lastupdate_tasksGet lastupdate Tasksu2   Devuelve tareas modificadas desde el último sync.get_lastupdate_quotesGet lastupdate Quotesu8   Devuelve cotizaciones modificadas desde el último sync.)r	   )self r   H/var/www/html/flask_server/apps/aroflo_connector_app/zones/lastupdate.py
operations   s    zLastUpdateZone.operationsNoperation_codestrparamsOptional[Dict[str, Any]]r   c                 C  sv   |pi }|  |}|jdkr| jjdd|dS |jdkr%| jjdd|dS |jdkr3| jjdd|dS td	| d
)u   
        Aquí mapeamos cada operation_code a la llamada AroFlo real.
        Cuando tengas la doc, rellenamos los paths exactos y nombres
        de filtros (por ejemplo: fromdate, todate, lastupdateid, etc.).
        r   r   r   )zoneactionr   r   r   r   r   u   Operación 'z ' no soportada en LastUpdateZone)get_operationr   clientrequest
ValueError)r   r   r   opr   r   r   execute#   s*   




zLastUpdateZone.execute)r   r   )N)r   r   r   r   r   r   )	__name__
__module____qualname__r   r   r   propertyr   r'   r   r   r   r   r
   	   s    r
   N)
__future__r   typingr   r   r   r   baser   r	   r
   r   r   r   r   <module>   s   