o
    B_i                     @  sj   d dl mZ d dlmZmZmZmZ ddlmZm	Z	 ddl
mZmZ dZdd
dZdddZdddZdS )    )annotations)AnyDictListTuple   )ZoneOperation	ParamSpec   )requestraw_wraplist_userpositionsreturnList[ZoneOperation]c                   C  sD   t tddddddddtd	d
ddtddddgdddgdddgS )NzList UserPositionszuDevuelve userpositions. Nota: AroFlo expone esto bajo zone=permissiongroups y responde en zoneresponse.userpositions.GETreadTr
   F)pagerawr   integeru   Número de página (1..N).r   booleanz/Si true, devuelve respuesta cruda + meta debug.userpositionszListar posiciones de usuariou)   Inspeccionar configuración de posicioneslow)codelabeldescriptionhttp_methodside_effect
idempotentdefault_paramsparamscategory	use_cases
risk_levelrequires_confirmation)r   OP_LISTr	    r%   r%   P/var/www/html/flask_server/apps/aroflo_connector_app/zones/userpositions/base.pyget_operations   s"   r'   operation_codestrboolc                 C  s
   | t hv S )N)r$   )r(   r%   r%   r&   supports(   s   
r+   clientr   r   Dict[str, Any]c                 C  st   t |dd}| tkr3t|dd}|dk rtdddt|fg}t|d|}|r1t||S |S td|  )	Nr   Fr   r
   zpage debe ser >= 1.)zonepermissiongroupsr   u.   [UserPositions.base] Operación no soportada: )r*   getr$   int
ValueErrorr)   r   r   )r(   r,   r   r   r   params_listrespr%   r%   r&   execute,   s   
r5   N)r   r   )r(   r)   r   r*   )r(   r)   r,   r   r   r-   r   r   )
__future__r   typingr   r   r   r   baser   r	   _join_utilsr   r   r$   r'   r+   r5   r%   r%   r%   r&   <module>   s   

