o
    B_i*
                     @  sv   d dl mZ d dlmZmZmZ ddlmZmZ ddl	m
Z
mZmZmZmZ dZdZdddZdddZdddZdS )    )annotations)AnyDictList   )ZoneOperation	ParamSpec   )requestraw_wrapcoerce_page_sizecoerce_orderbuild_list_paramsexpenseget_tasks_with_expensereturnList[ZoneOperation]c                   C  sn   t tddddddd dd dd	td
dddtddddt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Get Tasks with Expenseuq   Devuelve tasks (zona=tasks) incluyendo el join 'expense'. Útil para ver gastos (expenses) asociados a cada task.GETreadTand|createdutc|>|2001-01-01r	   F)whereorderpagepageSizerawr   stringu   Cláusula WHERE estilo AroFlo.r   z(ORDER estilo AroFlo. Ej: createdutc|descr   integeru   Número de página (1..N).r   u'   Tamaño de página (AroFlo 'pageSize').r   booleanz/Si true, devuelve respuesta cruda + meta debug.taskszListar tasks con gastosz,Auditar gastos por rango/cliente (con WHERE)low)codelabeldescriptionhttp_methodside_effect
idempotentdefault_paramsparamscategory	use_cases
risk_levelrequires_confirmation)r   OP_CODEr    r-   r-   P/var/www/html/flask_server/apps/aroflo_connector_app/zones/tasks/join_expense.pyget_operations   s6   r/   operation_codestrboolc                 C  s   | t kS )N)r,   )r0   r-   r-   r.   supports2   s   r3   clientr   r'   Dict[str, Any]c           
      C  s   | t krtd|  t|dd}|dd}t|}t|dd}|dk r-tdt|}td	|t|||d
}t	|d|}	|rHt
|	|S |	S )Nu.   [Tasks.join_expense] Operación no soportada: r   Fr   r   r   r	   zpage debe ser >= 1.r   )zoner   joinr   r   r   r   )r,   
ValueErrorr2   getr   intr   r   	JOIN_NAMEr
   r   )
r0   r4   r'   r   r   r   r   r   params_listrespr-   r-   r.   execute6   s&   	r>   N)r   r   )r0   r1   r   r2   )r0   r1   r4   r   r'   r5   r   r   )
__future__r   typingr   r   r   baser   r   _join_utilsr
   r   r   r   r   r;   r,   r/   r3   r>   r-   r-   r-   r.   <module>   s   

%