Ë
    ¯�öiã  ã                   óÚ  — d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZmZ d d	lmZ  e«       Zd
ededdfd„Zej3                  ded¬«       ee
«       ee«      fd
edededefd„«       Zej9                  ded¬«       ee
«       ee«      fd
ededededef
d„«       Zej=                  ded¬«       ee
«       ee«      fd
edededededefd„«       Zy)é    )Ú	APIRouterÚBackgroundTasksÚDependsÚHTTPException)Úselect)ÚAsyncSession)Úget_db)Úget_current_user)ÚTelegramConfig)ÚUser)ÚTelegramConfigResponseÚTelegramConfigUpdate)Útelegram_serviceÚspbu_idÚuserÚreturnNc                 ó€   ‡ — |j                   ry t        ˆ fd„|j                  xs g D «       «      }|st        dd«      ‚y )Nc              3   ó<   •K  — | ]  }|j                   ‰k(  –— Œ y ­w)N©r   )Ú.0Úar   s     €ú=/var/www/html/spbu.com/backend/app/routers/telegram_config.pyÚ	<genexpr>z&_require_spbu_admin.<locals>.<genexpr>   s   øè ø€ ÐJÑ2H¨A�1—9‘9 Õ'Ñ2Hùs   ƒi“  zAkses ditolak)Úis_superadminÚanyÚassignmentsr   )r   r   Úassigneds   `  r   Ú_require_spbu_adminr      sB   ø€ Ø×ÒØÜÓJ°$×2BÑ2BÒ2HÀbÐ2HÓJÓJ€HÙÜ˜C Ó1Ð1ð ó    z /spbus/{spbu_id}/telegram-configzGet Telegram config for SPBU)Úresponse_modelÚsummaryÚdbÚcurrent_userc              ƒ   ót  K  — t        | |«       |j                  t        t        «      j	                  t        j
                  | k(  «      «      ƒ d {  –—† }|j                  «       }|s*dt        | dd d d d d d d d d d d d d ¬«      j                  «       iS dt        j                  |«      j                  «       iS 7 Œe­w)NÚdataF)r   Ú	is_activeÚchat_operasional_idÚthread_penjualan_idÚthread_penerimaan_idÚthread_stock_idÚchat_finansial_idÚthread_penyetoran_idÚthread_expense_idÚthread_pb_idÚthread_penebusan_idÚ
chat_ga_idÚthread_absensi_idÚthread_housekeeping_idÚthread_sapras_id)
r   Úexecuter   r   Úwherer   Úscalar_one_or_noner   Ú
model_dumpÚmodel_validate)r   r"   r#   ÚresultÚcfgs        r   Úget_telegram_configr;      sÀ   è ø€ ô ˜ Ô.Ø—:‘:ÜŒ~Ó×$Ñ$¤^×%;Ñ%;¸wÑ%FÓGó÷ €Fð ×
#Ñ
#Ó
%€CÙàÔ.Ø uØ $¸$Ø!%°tØ"¸Ø"°È4Ø¨tØ#'¸$ô
÷ ‰*‹,ðð 	ð Ô*×9Ñ9¸#Ó>×IÑIÓKÐLÐLðús   ‚AB8ÁB6ÁA&B8z&Save Telegram config for SPBU (upsert)Úbodyc              ƒ   ó0  K  — t        | |«       |j                  t        t        «      j	                  t        j
                  | k(  «      «      ƒ d {  –—† }|j                  «       }|st        | ¬«      }|j                  |«       |j                  d¬«      j                  «       D ]  \  }}t        |||«       Œ |j                  «       ƒ d {  –—†  |j                  |«      ƒ d {  –—†  t        j                  |«      j                  «       ddœS 7 Œ¿7 ŒE7 Œ.­w)Nr   F)Úexclude_nonezTelegram config disimpan)r%   Úmessage)r   r4   r   r   r5   r   r6   Úaddr7   ÚitemsÚsetattrÚcommitÚrefreshr   r8   )r   r<   r"   r#   r9   r:   ÚfieldÚvalues           r   Úsave_telegram_configrG   4   së   è ø€ ô ˜ Ô.à—:‘:ÜŒ~Ó×$Ñ$¤^×%;Ñ%;¸wÑ%FÓGó÷ €Fð ×
#Ñ
#Ó
%€CáÜ WÔ-ˆØ
�‰ˆsŒàŸ™°U˜Ó;×AÑAÖC‰ˆˆuÜ��U˜EÕ"ð Dð �)‰)‹+×ÐØ
�*‰*�S‹/×ÐÜ*×9Ñ9¸#Ó>×IÑIÓKÐXrÑsÐsðøð øØús7   ‚ADÁDÁA;DÃDÃDÃ%DÃ&+DÄDÄDz%/spbus/{spbu_id}/telegram-config/testz'Send a test message to a specific topicÚbackground_tasksc              ƒ   óÐ   K  — t        | |«       |j                  dd«      }|j                  d«      }|st        dd«      ‚|j                  t        j
                  ||d«       ddiS ­w)	z0body: { "chat_id": "-100...", "thread_id": 123 }Úchat_idÚ Ú	thread_idi�  zchat_id wajib diisiuC   âœ… <b>Test berhasil!</b>

Konfigurasi Telegram SPBU Manager aktif.r?   zTest message dikirim)r   Úgetr   Úadd_taskr   Ú
_send_text)r   r<   rH   r"   r#   rJ   rL   s          r   Útest_telegram_configrP   R   so   è ø€ ô ˜ Ô.à—8‘8˜I rÓ*€GØ ŸH™H [Ó1€IáÜ˜CÐ!6Ó7Ð7à×ÑÜ×#Ñ#ØØØOô	ð Ð-Ð.Ð.ùs   ‚A$A&) Úfastapir   r   r   r   Ú
sqlalchemyr   Úsqlalchemy.ext.asyncior   Úapp.core.databaser	   Úapp.dependenciesr
   Úapp.models.telegram_configr   Úapp.models.userr   Úapp.schemas.telegram_configr   r   Úapp.servicesr   ÚrouterÚintr   rM   Údictr;   ÚputrG   ÚpostrP   © r   r   Ú<module>r`      s’  ðß FÓ FÝ Ý /å $Ý -Ý 5Ý  ß TÝ )á	‹€ð2 ð 2¨Dð 2°Tó 2ð ‡�Ø&ØØ*ð ó ñ ˜v“Ù Ð!1Ó2ñMØðMàðMð ðMð 
ò	Móð
Mð0 ‡�Ø&ØØ4ð ó ñ ˜v“Ù Ð!1Ó2ñ	tØðtà
ðtð 	ðtð ð	tð
 
òtóð
tð2 ‡�Ø+ØØ5ð ó ñ ˜v“Ù Ð!1Ó2ñ/Øð/à
ð/ð &ð/ð 	ð	/ð
 ð/ð 
ò/óñ
/r   