35 lines
802 B
Ruby
35 lines
802 B
Ruby
|
# == Schema Information
|
||
|
#
|
||
|
# Table name: notification_settings
|
||
|
#
|
||
|
# id :bigint not null, primary key
|
||
|
# email_flags :integer default(0), not null
|
||
|
# created_at :datetime not null
|
||
|
# updated_at :datetime not null
|
||
|
# account_id :integer
|
||
|
# user_id :integer
|
||
|
#
|
||
|
# Indexes
|
||
|
#
|
||
|
# by_account_user (account_id,user_id) UNIQUE
|
||
|
#
|
||
|
|
||
|
class NotificationSetting < ApplicationRecord
|
||
|
# used for single column multi flags
|
||
|
include FlagShihTzu
|
||
|
|
||
|
belongs_to :account
|
||
|
belongs_to :user
|
||
|
|
||
|
DEFAULT_QUERY_SETTING = {
|
||
|
flag_query_mode: :bit_operator
|
||
|
}.freeze
|
||
|
|
||
|
EMAIL_NOTIFCATION_FLAGS = {
|
||
|
1 => :conversation_creation,
|
||
|
2 => :conversation_assignment
|
||
|
}.freeze
|
||
|
|
||
|
has_flags EMAIL_NOTIFCATION_FLAGS.merge(column: 'email_flags').merge(DEFAULT_QUERY_SETTING)
|
||
|
end
|