(contactId: number)
| 259 | .all(...replyTimeFilter.params) as Array<{ replySenderId: number; replyTs: number; targetSenderId: number }> |
| 260 | |
| 261 | const ensureReplyStats = (contactId: number) => { |
| 262 | const existing = replyStats.get(contactId) |
| 263 | if (existing) return existing |
| 264 | const created = { repliesFromOwnerToContact: 0, repliesFromContactToOwner: 0, lastInteractionTs: null } |
| 265 | replyStats.set(contactId, created) |
| 266 | return created |
| 267 | } |
| 268 | |
| 269 | for (const row of replyRows) { |
| 270 | if (row.replySenderId === ownerMemberId && contactById.has(row.targetSenderId)) { |
no test coverage detected