@@ -33,6 +33,36 @@ pub fn schedule_one(ctx: &Context, config: &Config, thread_id: String, close_at:
3333 )
3434 . await ;
3535 let _ = delete_scheduled_closure ( & thread_id, pool) . await ;
36+
37+ if config_clone. bot . enable_logs {
38+ if let Some ( logs_channel_id) = config_clone. bot . logs_channel_id {
39+ let base_url = config_clone
40+ . bot
41+ . redirect_url
42+ . trim_end_matches ( "/api/auth/callback" )
43+ . trim_end_matches ( '/' ) ;
44+
45+ let panel_url = format ! ( "{}/panel/tickets/{}" , base_url, thread. id) ;
46+
47+ let mut params = std:: collections:: HashMap :: new ( ) ;
48+ params. insert ( "username" . to_string ( ) , thread. user_name . clone ( ) ) ;
49+ params. insert ( "user_id" . to_string ( ) , thread. user_id . to_string ( ) ) ;
50+ params. insert ( "panel_url" . to_string ( ) , panel_url) ;
51+
52+ let _ = MessageBuilder :: system_message ( & ctx_clone, & config_clone)
53+ . translated_content (
54+ "logs.ticket_closed" ,
55+ Some ( & params) ,
56+ None ,
57+ None ,
58+ )
59+ . await
60+ . to_channel ( ChannelId :: new ( logs_channel_id) )
61+ . send ( true )
62+ . await ;
63+ }
64+ }
65+
3666 if !current. silent {
3767 let _ = MessageBuilder :: system_message ( & ctx_clone, & config_clone)
3868 . content ( & config_clone. bot . close_message )
@@ -85,6 +115,31 @@ pub async fn hydrate_scheduled_closures(ctx: &Context, config: &Config) {
85115 )
86116 . await ;
87117 let _ = delete_scheduled_closure ( & thread. id , pool) . await ;
118+
119+ if config. bot . enable_logs {
120+ if let Some ( logs_channel_id) = config. bot . logs_channel_id {
121+ let base_url = config
122+ . bot
123+ . redirect_url
124+ . trim_end_matches ( "/api/auth/callback" )
125+ . trim_end_matches ( '/' ) ;
126+
127+ let panel_url = format ! ( "{}/panel/tickets/{}" , base_url, thread. id) ;
128+
129+ let mut params = std:: collections:: HashMap :: new ( ) ;
130+ params. insert ( "username" . to_string ( ) , thread. user_name . clone ( ) ) ;
131+ params. insert ( "user_id" . to_string ( ) , thread. user_id . to_string ( ) ) ;
132+ params. insert ( "panel_url" . to_string ( ) , panel_url) ;
133+
134+ let _ = MessageBuilder :: system_message ( ctx, config)
135+ . translated_content ( "logs.ticket_closed" , Some ( & params) , None , None )
136+ . await
137+ . to_channel ( ChannelId :: new ( logs_channel_id) )
138+ . send ( true )
139+ . await ;
140+ }
141+ }
142+
88143 if !sc. silent {
89144 let _ = MessageBuilder :: system_message ( ctx, config)
90145 . content ( & config. bot . close_message )
0 commit comments