|
|
|
@ -26,15 +26,15 @@ class Notification < ApplicationRecord
|
|
|
|
|
|
|
|
|
|
STATUS_INCLUDES = [:account, :application, :stream_entry, :media_attachments, :tags, mentions: :account, reblog: [:stream_entry, :account, :application, :media_attachments, :tags, mentions: :account]].freeze
|
|
|
|
|
|
|
|
|
|
belongs_to :account
|
|
|
|
|
belongs_to :from_account, class_name: 'Account'
|
|
|
|
|
belongs_to :activity, polymorphic: true
|
|
|
|
|
|
|
|
|
|
belongs_to :mention, foreign_type: 'Mention', foreign_key: 'activity_id'
|
|
|
|
|
belongs_to :status, foreign_type: 'Status', foreign_key: 'activity_id'
|
|
|
|
|
belongs_to :follow, foreign_type: 'Follow', foreign_key: 'activity_id'
|
|
|
|
|
belongs_to :follow_request, foreign_type: 'FollowRequest', foreign_key: 'activity_id'
|
|
|
|
|
belongs_to :favourite, foreign_type: 'Favourite', foreign_key: 'activity_id'
|
|
|
|
|
belongs_to :account, optional: true
|
|
|
|
|
belongs_to :from_account, class_name: 'Account', optional: true
|
|
|
|
|
belongs_to :activity, polymorphic: true, optional: true
|
|
|
|
|
|
|
|
|
|
belongs_to :mention, foreign_type: 'Mention', foreign_key: 'activity_id', optional: true
|
|
|
|
|
belongs_to :status, foreign_type: 'Status', foreign_key: 'activity_id', optional: true
|
|
|
|
|
belongs_to :follow, foreign_type: 'Follow', foreign_key: 'activity_id', optional: true
|
|
|
|
|
belongs_to :follow_request, foreign_type: 'FollowRequest', foreign_key: 'activity_id', optional: true
|
|
|
|
|
belongs_to :favourite, foreign_type: 'Favourite', foreign_key: 'activity_id', optional: true
|
|
|
|
|
|
|
|
|
|
validates :account_id, uniqueness: { scope: [:activity_type, :activity_id] }
|
|
|
|
|
validates :activity_type, inclusion: { in: TYPE_CLASS_MAP.values }
|
|
|
|
|