@@ -46,7 +46,7 @@ public void onChannelUpdateArchived(@NotNull ChannelUpdateArchivedEvent event) {
46
46
if (!helper .isHelpForumName (threadChannel .getParentChannel ().getName ())) {
47
47
return ;
48
48
}
49
- handleThreadStatus (threadChannel . getIdLong () );
49
+ handleThreadStatus (threadChannel );
50
50
}
51
51
52
52
@ Override
@@ -63,25 +63,32 @@ public void onChannelUpdateAppliedTags(@NotNull ChannelUpdateAppliedTagsEvent ev
63
63
handleTagsUpdate (threadId , updatedTag );
64
64
}
65
65
66
- private void handleThreadStatus (long threadId ) {
66
+ private void handleThreadStatus (ThreadChannel threadChannel ) {
67
67
Instant closedAt = Instant .now ();
68
+ long threadId = threadChannel .getIdLong ();
68
69
69
70
int status = database .read (context -> context .selectFrom (HELP_THREADS )
70
71
.where (HELP_THREADS .CHANNEL_ID .eq (threadId ))
71
72
.fetchOne (HELP_THREADS .TICKET_STATUS ));
72
73
73
74
if (status == HelpSystemHelper .TicketStatus .ACTIVE .val ) {
74
- changeStatusToArchive (closedAt , threadId );
75
+ handleArchiveStatus (closedAt , threadChannel );
75
76
return ;
76
77
}
77
78
78
79
changeStatusToActive (threadId );
79
80
}
80
81
81
- private void changeStatusToArchive (Instant closedAt , long threadId ) {
82
+ private void handleArchiveStatus (Instant closedAt , ThreadChannel threadChannel ) {
83
+ long threadId = threadChannel .getIdLong ();
84
+ int messageCount = threadChannel .getMessageCount ();
85
+ int participantsExceptAuthor = threadChannel .getMemberCount () - 1 ;
86
+
82
87
database .write (context -> context .update (HELP_THREADS )
83
88
.set (HELP_THREADS .CLOSED_AT , closedAt )
84
89
.set (HELP_THREADS .TICKET_STATUS , HelpSystemHelper .TicketStatus .ARCHIVED .val )
90
+ .set (HELP_THREADS .MESSAGE_COUNT ,messageCount )
91
+ .set (HELP_THREADS .PARTICIPANTS ,participantsExceptAuthor )
85
92
.where (HELP_THREADS .CHANNEL_ID .eq (threadId ))
86
93
.execute ());
87
94
0 commit comments