@@ -102,7 +102,9 @@ export class ClientService {
102102
103103 const status = this . determineClientStatus ( lastUpdate ) ;
104104
105- // Update lastOnlineAt if client is online and lastOnlineAt is not set or client was previously offline
105+ // Update lastOnlineAt to track online/offline transitions
106+ // For online clients: set lastOnlineAt if not set
107+ // For offline clients: keep lastOnlineAt to calculate offline duration
106108 let lastOnlineAt = client . lastOnlineAt ;
107109 if ( status === 'online' ) {
108110 if ( ! lastOnlineAt ) {
@@ -111,11 +113,8 @@ export class ClientService {
111113 await this . clientRepository . updateLastOnlineAt ( client . id , lastOnlineAt ) ;
112114 }
113115 } else {
114- // Client is offline, clear lastOnlineAt
115- if ( lastOnlineAt ) {
116- await this . clientRepository . updateLastOnlineAt ( client . id , null ) ;
117- lastOnlineAt = null ;
118- }
116+ // Client is offline, keep lastOnlineAt to track when it went offline
117+ // Don't clear it so we can calculate offline duration
119118 }
120119
121120 return {
@@ -166,18 +165,18 @@ export class ClientService {
166165
167166 const status = this . determineClientStatus ( client . updatedAt ) ;
168167
169- // Update lastOnlineAt if client is online and lastOnlineAt is not set
168+ // Update lastOnlineAt to track online/offline transitions
169+ // For online clients: set lastOnlineAt if not set
170+ // For offline clients: keep lastOnlineAt to calculate offline duration
170171 let lastOnlineAt = client . lastOnlineAt ;
171172 if ( status === 'online' ) {
172173 if ( ! lastOnlineAt ) {
173174 lastOnlineAt = new Date ( ) ;
174175 await this . clientRepository . updateLastOnlineAt ( client . id , lastOnlineAt ) ;
175176 }
176177 } else {
177- if ( lastOnlineAt ) {
178- await this . clientRepository . updateLastOnlineAt ( client . id , null ) ;
179- lastOnlineAt = null ;
180- }
178+ // Client is offline, keep lastOnlineAt to track when it went offline
179+ // Don't clear it so we can calculate offline duration
181180 }
182181
183182 const detail : ClientDetailDto = {
0 commit comments