From 98ba6e5200bb27e5b7c9251864e833cb0f4e4c64 Mon Sep 17 00:00:00 2001 From: Muhsin <12408980+muhsin-k@users.noreply.github.com> Date: Mon, 20 Apr 2026 14:38:57 +0400 Subject: [PATCH] refactor(voice): drop content_attributes.data from voice_call messages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nothing reads it anymore — frontend uses message.call, CallMessageBuilder uses call.message (the FK), and the jsonb fallback finder was dead code (call.message_id is always linked immediately after message creation, in the same transaction). New voice_call messages are now created with blank content_attributes. Existing rows keep their legacy payload; nothing reads it, so it's inert. Safe to backfill with `Message.voice_calls.update_all(content_attributes: {})` if you want a tidy table. --- .../app/services/voice/call_message_builder.rb | 12 ++---------- .../services/voice/inbound_call_builder_spec.rb | 1 - .../services/voice/outbound_call_builder_spec.rb | 1 - 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/enterprise/app/services/voice/call_message_builder.rb b/enterprise/app/services/voice/call_message_builder.rb index e5157a57a..722ad78d1 100644 --- a/enterprise/app/services/voice/call_message_builder.rb +++ b/enterprise/app/services/voice/call_message_builder.rb @@ -8,26 +8,18 @@ class Voice::CallMessageBuilder end def perform! - find_message || create_message! + call.message || create_message! end private attr_reader :call - def find_message - return call.message if call.message_id.present? - - call.conversation.messages.voice_calls - .find_by("content_attributes -> 'data' ->> 'call_sid' = ?", call.provider_call_id) - end - def create_message! params = { content: 'Voice Call', message_type: call.outgoing? ? 'outgoing' : 'incoming', - content_type: 'voice_call', - content_attributes: { 'data' => { 'call_sid' => call.provider_call_id } } + content_type: 'voice_call' } Messages::MessageBuilder.new(sender, call.conversation, params).perform end diff --git a/spec/enterprise/services/voice/inbound_call_builder_spec.rb b/spec/enterprise/services/voice/inbound_call_builder_spec.rb index 6256b225f..7af9be8e6 100644 --- a/spec/enterprise/services/voice/inbound_call_builder_spec.rb +++ b/spec/enterprise/services/voice/inbound_call_builder_spec.rb @@ -48,7 +48,6 @@ RSpec.describe Voice::InboundCallBuilder do expect(voice_message).to be_present expect(voice_message.message_type).to eq('incoming') expect(call.message_id).to eq(voice_message.id) - expect(voice_message.content_attributes['data']['call_sid']).to eq(call_sid) expect(voice_message.call).to eq(call) end end diff --git a/spec/enterprise/services/voice/outbound_call_builder_spec.rb b/spec/enterprise/services/voice/outbound_call_builder_spec.rb index a16ee6e72..796afe715 100644 --- a/spec/enterprise/services/voice/outbound_call_builder_spec.rb +++ b/spec/enterprise/services/voice/outbound_call_builder_spec.rb @@ -40,7 +40,6 @@ RSpec.describe Voice::OutboundCallBuilder do voice_message = call.conversation.messages.voice_calls.last expect(call.message_id).to eq(voice_message.id) expect(voice_message.message_type).to eq('outgoing') - expect(voice_message.content_attributes['data']['call_sid']).to eq(call_sid) expect(voice_message.call).to eq(call) end end