+
    `ØjÆ  ã                   óš  € ^ RI HtHtHt ^ RIHt ^ RIHtHt ^ RI	H
t
 ^ RIHt ^ RIHtHt ^ RIHt ^ RIHt ^ R	IHtHt ^R
IHtHtHt ^RIHtHtHtHtH t H!t! ]! 4       t"]"PG                  RRR7      ]! ]4      ]! ]4      3R R ll4       t$]"PG                  R]],          R7      ^ ^dR]! ]4      ]! ]! RR4      4      3R R ll4       t%]"PM                  R]^ÉR7      ]! ]4      ]! ]! RR4      4      3R R ll4       t']"PG                  R]R7      ]! ]4      ]! ]! RR4      4      3R R ll4       t(]"PS                  R]R7      ]! ]4      ]! ]! RR4      4      3R  R! ll4       t*]"PW                  R"^ÌR#7      ]! ]4      ]! ]! RR$4      4      3R% R& ll4       t,]"PW                  R^ÌR#7      ]! ]4      ]! ]! RR$4      4      3R' R( ll4       t-R# ))é    )Ú	APIRouterÚDependsÚHTTPException)ÚAsyncSession)ÚListÚOptional)ÚUUID)Úget_db)Úget_current_userÚrequire_permission)Ú
LoginUsers)ÚStationMaster)ÚselectÚ
nulls_last)ÚStationCreateÚStationUpdateÚStationResponse)Úlist_stations_serviceÚcreate_station_serviceÚget_station_serviceÚupdate_station_serviceÚdelete_station_serviceÚ permanent_delete_station_servicez	/dropdownz*Station dropdown list (any logged-in user))Úsummaryc                ó0   € V ^8„  d   QhR\         R\        /# )é   ÚdbÚ_)r   r   )Úformats   "Ú</var/www/html/audi_dev/backend/app/modules/station/routes.pyÚ__annotate__r!      s   € ÷ ñ Üðäñó    c              ƒ  ót  "  € \        \        P                  \        P                  \        P                  \        P
                  4      P                  \        P                  R8H  4      P                  \        P                  4      P                  \        P                  \        \        P
                  4      4      pV P                  V4      G Rj  x€L
 pVP                  4       P                  4       pV Uu. uF2  pR\        VR,          4      RVR,          RVR,          RVR,          /NK4  	  up#  Lau upi 5i)u†   Returns minimal station data for populating dropdowns.
Only requires basic authentication â€” no special LOCATIONS permission needed.
TNÚ
station_idÚstation_codeÚstation_nameÚsequence_no)r   r   r$   r%   r&   r'   ÚwhereÚ	is_activeÚdistinctÚorder_byr   ÚexecuteÚmappingsÚallÚstr)r   r   ÚstmtÚresultÚrowsÚrs   &&    r    Úget_stations_dropdownr4      s  é € ô 	Ü×$Ñ$Ü×&Ñ&Ü×&Ñ&Ü×%Ñ%ó		
÷ 
‰Œ}×&Ñ&¨$Ñ.Ó	/ß	‰”-×,Ñ,Ó	-ß	‰”-×,Ñ,¬j¼×9RÑ9RÓ.SÓ	Tð 	ð —:‘:˜dÓ#×#€FØ�?‰?Ó× Ñ Ó"€Dñ óñ ˆAð œ#˜a �oÓ.Ø˜A˜nÕ-Ø˜A˜nÕ-Ø˜1˜]Õ+ó		
ñ ñð ñ $ùòùs$   ‚CD8ÃD1Ã&D8Ã68D3Ä.D8Ä3D8Ú/)Úresponse_modelNÚ	LOCATIONSÚviewc                ó^   € V ^8„  d   QhR\         R\         R\        \        ,          R\        /# )r   ÚskipÚlimitr)   r   )Úintr   r/   r   )r   s   "r    r!   r!   9   s4   € ÷ ñ Ü
ðäðô œ�}ðô 	ñ	r"   c              ƒ   ó<   "  € \        VV VVR 7      G Rj  x€L
 #  L5i))r   r:   r;   r)   N)r   )r:   r;   r)   r   r   s   &&&&&r    Úlist_stationsr>   8   s*   é € ô 'ØØØØô	÷ ð ñ ùs   ‚•–)r6   Ústatus_codeÚcreatec                ó0   € V ^8„  d   QhR\         R\        /# )r   Údatar   )r   r   )r   s   "r    r!   r!   I   s   € ÷ 2ñ 2Ü
ð2äñ2r"   c              ƒ   ó4   "  € \        W4      G R j  x€L
 #  L5i©N)r   )rB   r   r   s   &&&r    Úcreate_stationrE   H   s   é € ô (¨Ó1×1Ð1Ñ1ùó   ‚‘’z/{station_id}c                ó0   € V ^8„  d   QhR\         R\        /# )r   r$   r   )r	   r   )r   s   "r    r!   r!   R   s   € ÷ 5ñ 5Üð5äñ5r"   c              ƒ   ó4   "  € \        W4      G R j  x€L
 #  L5irD   )r   )r$   r   r   s   &&&r    Úget_stationrI   Q   s   é € ô % RÓ4×4Ð4Ñ4ùrF   Úeditc                óH   € V ^8„  d   QhR\         R\        R\        R\        /# )r   r$   rB   r   Úuser)r	   r   r   r   )r   s   "r    r!   r!   [   s0   € ÷ >ñ >Üð>ä
ð>ô 	ð>ô ñ	>r"   c              ƒ   ór   "  € VP                   R9  d   \        RRR7      h\        W V4      G Rj  x€L
 #  L5i)ÚADMINé“  z-Only Admin and Client Admin can edit stations©r?   ÚdetailN©rN   ÚCLIENT_ADMINÚC_ADMIN)Ú	role_coder   r   )r$   rB   r   rL   s   &&&&r    Úupdate_stationrV   Z   s5   é € ð ‡~�~ÐAÔAÜ¨Ð4cÔdÐdÜ'¨¸Ó=×=Ð=Ñ=ùs   ‚.7°5±7z/{station_id}/permanent)r?   Údeletec                ó<   € V ^8„  d   QhR\         R\        R\        /# ©r   r$   r   rL   ©r	   r   r   )r   s   "r    r!   r!   g   s&   € ÷ ;ñ ;Üð;äð;ô ñ;r"   c              ƒ   ót   "  € VP                   R9  d   \        RRR7      h\        W4      G Rj  x€L
  R#  L5i©rN   rO   z/Only Admin and Client Admin can delete stationsrP   NrR   )rU   r   r   ©r$   r   rL   s   &&&r    Úpermanent_delete_stationr^   f   s0   é € ð ‡~�~ÐAÔAÜ¨Ð4eÔfÐfÜ
*¨2Ó
:×:Ô:ùó   ‚-8¯6°8c                ó<   € V ^8„  d   QhR\         R\        R\        /# rY   rZ   )r   s   "r    r!   r!   r   s&   € ÷ 1ñ 1Üð1äð1ô ñ1r"   c              ƒ   ót   "  € VP                   R9  d   \        RRR7      h\        W4      G Rj  x€L
  R#  L5ir\   )rU   r   r   r]   s   &&&r    Údelete_stationrb   q   s0   é € ð ‡~�~ÐAÔAÜ¨Ð4eÔfÐfÜ
  Ó
0×0Ô0ùr_   ).Úfastapir   r   r   Úsqlalchemy.ext.asyncior   Útypingr   r   Úuuidr	   Úapp.core.databaser
   Úapp.core.securityr   r   Úapp.models.core_modelsr   Úapp.models.rm_modelsr   Ú
sqlalchemyr   r   Úschemasr   r   r   Úservicer   r   r   r   r   r   ÚrouterÚgetr4   r>   ÚpostrE   rI   ÚputrV   rW   r^   rb   © r"   r    Ú<module>rs      sÛ  ðß 5Ñ 5Ý /ß !Ý å $ß BÝ -Ý .ß )ß BÑ B÷÷ ñ 
‹€ð ‡�ˆKÐ!M€ÓNá˜v“ÙÐ,Ó-öó Oðð> ‡�ˆC  _Õ 5€Ó6àØØ#Ù˜v“ÙÑ  ¨fÓ5Ó6öó 7ðð ‡�ˆS ¸c€ÓBñ ˜v“ÙÑ  ¨hÓ7Ó8ö2ó Cð2ð ‡�ˆO¨O€Ó<ñ ˜v“ÙÑ  ¨fÓ5Ó6ö5ó =ð5ð ‡�ˆO¨O€Ó<ñ ˜v“ÙÑ1°+¸vÓFÓGö	>ó =ð>ð ‡�Ð(°c€Ó:ñ ˜v“ÙÑ1°+¸xÓHÓIö;ó ;ð;ð ‡�ˆ¨C€Ó0ñ ˜v“ÙÑ1°+¸xÓHÓIö1ó 1ò1r"   