~cytrogen/masto-fe

ref: ee702e36e58d638bcf75b2eae2ca86499693465e masto-fe/app/models/follow_recommendation.rb -rw-r--r-- 707 bytes
ee702e36 — Claire Change follow recommendation materialized view to be faster in most cases (#26545) 2 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# frozen_string_literal: true

# == Schema Information
#
# Table name: global_follow_recommendations
#
#  account_id :bigint(8)        primary key
#  rank       :decimal(, )
#  reason     :text             is an Array
#

class FollowRecommendation < ApplicationRecord
  self.primary_key = :account_id
  self.table_name = :global_follow_recommendations

  belongs_to :account_summary, foreign_key: :account_id, inverse_of: false
  belongs_to :account

  scope :localized, ->(locale) { joins(:account_summary).merge(AccountSummary.localized(locale)) }

  def self.refresh
    Scenic.database.refresh_materialized_view(table_name, concurrently: false, cascade: false)
  end

  def readonly?
    true
  end
end