2021-04-12 10:37:14 +00:00
|
|
|
# frozen_string_literal: true
|
2023-02-20 05:58:28 +00:00
|
|
|
|
2021-04-12 10:37:14 +00:00
|
|
|
# == Schema Information
|
|
|
|
#
|
|
|
|
# Table name: account_summaries
|
|
|
|
#
|
|
|
|
# account_id :bigint(8) primary key
|
|
|
|
# language :string
|
|
|
|
# sensitive :boolean
|
|
|
|
#
|
|
|
|
|
|
|
|
class AccountSummary < ApplicationRecord
|
|
|
|
self.primary_key = :account_id
|
|
|
|
|
2024-01-24 09:57:32 +00:00
|
|
|
has_many :follow_recommendation_suppressions, primary_key: :account_id, foreign_key: :account_id, inverse_of: false
|
|
|
|
|
2021-04-12 10:37:14 +00:00
|
|
|
scope :safe, -> { where(sensitive: false) }
|
2024-01-30 17:24:40 +00:00
|
|
|
scope :localized, ->(locale) { order(Arel::Nodes::Case.new.when(arel_table[:language].eq(locale)).then(1).else(0).desc) }
|
2024-01-24 09:57:32 +00:00
|
|
|
scope :filtered, -> { where.missing(:follow_recommendation_suppressions) }
|
2021-04-12 10:37:14 +00:00
|
|
|
|
|
|
|
def self.refresh
|
2024-01-30 18:21:30 +00:00
|
|
|
Scenic.database.refresh_materialized_view(table_name, concurrently: true, cascade: false)
|
|
|
|
rescue ActiveRecord::StatementInvalid
|
2021-05-09 08:39:29 +00:00
|
|
|
Scenic.database.refresh_materialized_view(table_name, concurrently: false, cascade: false)
|
2021-04-12 10:37:14 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def readonly?
|
|
|
|
true
|
|
|
|
end
|
|
|
|
end
|