1# frozen_string_literal: true
2
3class Review < ApplicationRecord
4  include Participable
5  include Mentionable
6
7  belongs_to :author, class_name: 'User', foreign_key: :author_id, inverse_of: :reviews
8  belongs_to :merge_request, inverse_of: :reviews
9  belongs_to :project, inverse_of: :reviews
10
11  has_many :notes, -> { order(:id) }, inverse_of: :review
12
13  delegate :name, to: :author, prefix: true
14
15  participant :author
16
17  def all_references(current_user = nil, extractor: nil)
18    ext = super
19
20    notes.each do |note|
21      note.all_references(current_user, extractor: ext)
22    end
23
24    ext
25  end
26
27  def user_mentions
28    merge_request.user_mentions.where.not(note_id: nil)
29  end
30end
31