From d804e365cb0530239d27ea5044dbbc8e47e10d92 Mon Sep 17 00:00:00 2001 From: Abhinav Raut Date: Mon, 13 Apr 2026 00:59:16 +0530 Subject: [PATCH] Fix continuity email tracking to not reset contact_last_seen_at and exclude continuity messages from unread count --- internal/conversation/continuity.go | 3 +-- internal/conversation/queries.sql | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/internal/conversation/continuity.go b/internal/conversation/continuity.go index 5a73a237..31dabd09 100644 --- a/internal/conversation/continuity.go +++ b/internal/conversation/continuity.go @@ -268,8 +268,7 @@ func (m *Manager) sendContinuityEmail(conv models.ContinuityConversation, maxMes } // Mark in DB that continuity email was sent now - lastMessageTime := unreadMessages[len(unreadMessages)-1].CreatedAt - if _, err := m.q.UpdateContinuityEmailTracking.Exec(conv.ID, emailSubject, lastMessageTime); err != nil { + if _, err := m.q.UpdateContinuityEmailTracking.Exec(conv.ID, emailSubject); err != nil { m.lo.Error("error updating continuity email tracking", "conversation_uuid", conv.UUID, "error", err) return fmt.Errorf("updating continuity email tracking: %w", err) } diff --git a/internal/conversation/queries.sql b/internal/conversation/queries.sql index ed8b5ffe..7b642cde 100644 --- a/internal/conversation/queries.sql +++ b/internal/conversation/queries.sql @@ -746,6 +746,7 @@ WHERE i.channel = 'livechat' AND cm.created_at > c.contact_last_seen_at AND cm.type = 'outgoing' AND cm.private = false + AND (cm.meta IS NULL OR NOT COALESCE((cm.meta->>'continuity_email')::boolean, false)) ) AND u.email > '' AND (c.last_continuity_email_sent_at IS NULL @@ -787,8 +788,7 @@ WHERE id = ANY($1::int[]); -- name: update-continuity-email-tracking UPDATE conversations -SET contact_last_seen_at = $3, - last_continuity_email_sent_at = NOW(), +SET last_continuity_email_sent_at = NOW(), meta = jsonb_set(COALESCE(meta, '{}'::jsonb), '{continuity_email_subject}', to_jsonb($2::text)) WHERE id = $1; -- name: upsert-conversation-draft