const presenceTimestamp = (value) => { const timestamp = new Date(value || 0).getTime(); return Number.isFinite(timestamp) ? timestamp : 0; }; export function selectCurrentPresenceDevice(devices = []) { return devices.filter(Boolean).reduce((current, candidate) => { if (!current) return candidate; if (Boolean(candidate.isOnline) !== Boolean(current.isOnline)) { return candidate.isOnline ? candidate : current; } return presenceTimestamp(candidate.lastSeenAt) > presenceTimestamp(current.lastSeenAt) ? candidate : current; }, null); } export function buildOperatorPresenceRows(users = []) { return users.flatMap((user) => { const devices = Array.isArray(user?.devices) ? user.devices : []; const currentDevice = selectCurrentPresenceDevice(devices); if (!currentDevice) return []; return [{ ...currentDevice, userId: String(user.userId ?? ''), name: user.name || '', username: user.username || '', departmentName: user.departmentName || '', activeDeviceCount: Number(user.activeDeviceCount) || 0, deviceCount: Number(user.deviceCount) || devices.length, isOnline: Boolean(currentDevice.isOnline), }]; }); } export function filterOperatorPresenceRows(rows = [], status = 'all') { if (status === 'online') return rows.filter((row) => row.isOnline); if (status === 'offline') return rows.filter((row) => !row.isOnline); return rows; } export function getOperatorPresenceCounts(rows = []) { const online = rows.filter((row) => row.isOnline).length; return { total: rows.length, online, offline: rows.length - online, }; }