Chatwoot/app/models/label.rb

44 lines
1.1 KiB
Ruby
Raw Normal View History

2020-06-07 05:47:13 +00:00
# == Schema Information
#
# Table name: labels
#
# id :bigint not null, primary key
# color :string default("#1f93ff"), not null
2020-06-07 05:47:13 +00:00
# description :text
# show_on_sidebar :boolean
# title :string
# created_at :datetime not null
# updated_at :datetime not null
# account_id :bigint
#
# Indexes
#
# index_labels_on_account_id (account_id)
# index_labels_on_title_and_account_id (title,account_id) UNIQUE
2020-06-07 05:47:13 +00:00
#
class Label < ApplicationRecord
include RegexHelper
2020-06-07 05:47:13 +00:00
belongs_to :account
validates :title,
presence: { message: 'must not be blank' },
format: { with: UNICODE_CHARACTER_NUMBER_HYPHEN_UNDERSCORE },
uniqueness: { scope: :account_id }
before_validation do
self.title = title.downcase if attribute_present?('title')
end
def conversations
account.conversations.tagged_with(title)
end
def messages
account.messages.where(conversation_id: conversations.pluck(:id))
end
def events
account.events.where(conversation_id: conversations.pluck(:id))
end
2020-06-07 05:47:13 +00:00
end