chatwoot-develop/app/models/jasmine/inbox_config.rb

51 lines
1.6 KiB
Ruby

# == Schema Information
#
# Table name: jasmine_inbox_settings
#
# id :bigint not null, primary key
# intent_keywords :jsonb
# is_enabled :boolean default(FALSE)
# mode :integer default(0)
# model :string default("gpt-4o-mini")
# name :string default("Jasmine")
# playbook_prompt :text
# rag_distance_threshold :float default(0.35)
# rag_max_results :integer default(3)
# system_prompt :text
# temperature :float default(0.7)
# created_at :datetime not null
# updated_at :datetime not null
# account_id :bigint not null
# inbox_id :bigint not null
#
# Indexes
#
# index_jasmine_inbox_settings_on_account_id (account_id)
# index_jasmine_inbox_settings_on_account_id_and_inbox_id (account_id,inbox_id) UNIQUE
# index_jasmine_inbox_settings_on_inbox_id (inbox_id)
#
# Foreign Keys
#
# fk_rails_... (account_id => accounts.id)
# fk_rails_... (inbox_id => inboxes.id)
#
module Jasmine
class InboxConfig < ApplicationRecord
self.table_name = 'jasmine_inbox_settings'
belongs_to :account
belongs_to :inbox
validates :account_id, presence: true
validates :inbox_id, presence: true
validate :validate_account_consistency
private
def validate_account_consistency
return if inbox.nil?
errors.add(:base, 'Inbox account mismatch') if inbox.account_id != account_id
end
end
end