o
    hbiP                  !   @  s  U d dl mZ d dlmZmZmZmZ ddlmZm	Z	 dZ
dZdZdd	d
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
dddd d
ddd!d"d
ddd#d$d
ddd%d&d
ddd'd(d)ddd*d+d)ddd,d-d)ddd.d/d)ddd0d1d2ddd3d4d2ddd5d6d2ddd7d8d2ddd9d:d2ddd;d<d2ddd=d>d2ddd?d@d2dddAdBd2dddCdDd2dddEdFdGddgZdHedI< dZdLdMZd[dQdRZd\dWdXZdYS )]    )annotations)AnyDictListOptional   )ZoneOperation	ParamSpeclist_overheadsget_overheadsearch_overheadsIycqVyEKzAnnual LeaveleaveT)idnamegroupactiveIycqVyAKz!Sick Leave/ Personal/Carers LeaveIycqVywKzBereavement LeaveIydKSywKRDOIyQ6XyQKzRDO - CasualsIycqVyIKzPublic HolidayIyQ6XyUKzPublic Holiday - CasualsIydaQyAKzLWOP - Leave Without PayIyQ6Qy0KzSick Leave - UnpaidIyQ6UycKzTime in LieuzJCYqSyRRQCAgCg==zPurchased Annual Leave (EBA)zJCYqSyVQMCAgCg==z+LSL for salaried staff - Long Service LeavezJCYqTyNQICAgCg==z+LWOP for LeavePlus LSL - Long Service leavezJCYqTyxQQCAgCg==zCasual on leaveIydaRyYKz0Light Duties under WorkCover - Approval required	workcoverIyQqXyEKz$Lost Time Injury - Approval requiredIyQqXyIKz(Medical Treatment Injury - Approval ReqdIyQqXyMKzWorkCover Claim - Approval ReqdIyQ6UyYKzAdmin DutiesoperationalzJCYqTyNRUCAgCg==z!Admin Duties - TelecommunicationsIycqVyMKTrainingIyQqRyYKzSupervisor AuditIyQqQyEKz(Project Quoting, Management, SupervisionzJCYqTyJRUCAgCg==zPlanning/ApplicationsIyQqQyMKz!Attending Work Sites - Refer JSEAIyQqQywKzWorking From HomeIyQqXyAKzOnsite Scoping and NotifyingzJCYqTyBRQCAgCg==zWork Group MeetingsIyQqUyYKzLunch break - UnpaidbreakzList[Dict[str, Any]]CATALOGreturnList[ZoneOperation]c                   C  s   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t tdddddi tddddgdddgdd	d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 Overheadsu2   Lista el catálogo local de overheads/leave types.LOCALreadT)r   active_onlyr   stringFz4Filtro por grupo: leave/workcover/operational/break.r2   booleanzSi true, solo devuelve activos.	overheadszPoblar dropdowns en LeaveFormz"Ver lista de overheads disponibleslow)codelabeldescriptionhttp_methodside_effect
idempotentdefault_paramsparamscategory	use_cases
risk_levelrequires_confirmationzGet OverheadzObtiene un overhead por id.r   zID del overhead.zResolver nombre desde idzValidar overhead seleccionadozSearch Overheadsz=Busca overheads por texto (case-insensitive) en name y group. )qr2   rD   zTexto a buscar.u   Búsqueda rápida para UIAutocompletado)r   OP_LISTr	   OP_GET	OP_SEARCH rI   rI   L/var/www/html/flask_server/apps/aroflo_connector_app/zones/overheads/base.pyget_operations5   s`   rK   operation_codestrboolc                 C  s   | t tthv S )N)rF   rG   rH   )rL   rI   rI   rJ   supportsl   s   rO   clientr   r>   Dict[str, Any]c           
      C  s  t |dd}| tkrL|d}|rt|  nd }g }tD ]!}|r.t |dds.q!|r=t|dd |kr=q!|| q!|t|||dS | t	krt|d  }tD ]!}|d|kr{|rtt |ddstd dd	  S |dd	  S qZd dd	S | t
krt|d
d  }|sg d||dS g }tD ]'}|rt |ddsq|dd d|dd  }	||	v r|| q|t|||dS td|  )Nr2   Tr   r   rC   )r5   countr   r2   r   F)overheadfoundrD   r   )r5   rR   rD   r2   r    u*   [Overheads.base] Operación no soportada: )rN   getrF   rM   striplowerr-   appendlenrG   rH   
ValueError)
rL   rP   r>   r2   r   outitemoidrD   hayrI   rI   rJ   executep   sF   

"
r`   N)r.   r/   )rL   rM   r.   rN   )rL   rM   rP   r   r>   rQ   r.   r   )
__future__r   typingr   r   r   r   baser   r	   rF   rG   rH   r-   __annotations__rK   rO   r`   rI   rI   rI   rJ   <module>   sN   
(
7