# == Schema Information # # Table name: agent_bots # # id :bigint not null, primary key # description :string # name :string # outgoing_url :string # created_at :datetime not null # updated_at :datetime not null # account_id :bigint # # Indexes # # index_agent_bots_on_account_id (account_id) # # Foreign Keys # # fk_rails_... (account_id => accounts.id) ON DELETE => cascade # class AgentBot < ApplicationRecord include AccessTokenable include Avatarable has_many :agent_bot_inboxes, dependent: :destroy_async has_many :inboxes, through: :agent_bot_inboxes has_many :messages, as: :sender, dependent: :restrict_with_exception belongs_to :account, dependent: :destroy_async, optional: true def available_name name end def push_event_data(inbox = nil) { id: id, name: name, avatar_url: avatar_url || inbox&.avatar_url, type: 'agent_bot' } end def webhook_data { id: id, name: name, type: 'agent_bot' } end end