42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
#
 | 
						|
# == Schema Information
 | 
						|
#
 | 
						|
# Table name: account_relationship_severance_events
 | 
						|
#
 | 
						|
#  id                              :bigint(8)        not null, primary key
 | 
						|
#  account_id                      :bigint(8)        not null
 | 
						|
#  relationship_severance_event_id :bigint(8)        not null
 | 
						|
#  created_at                      :datetime         not null
 | 
						|
#  updated_at                      :datetime         not null
 | 
						|
#  followers_count                 :integer          default(0), not null
 | 
						|
#  following_count                 :integer          default(0), not null
 | 
						|
#
 | 
						|
class AccountRelationshipSeveranceEvent < ApplicationRecord
 | 
						|
  self.ignored_columns += %w(
 | 
						|
    relationships_count
 | 
						|
  )
 | 
						|
 | 
						|
  belongs_to :account
 | 
						|
  belongs_to :relationship_severance_event
 | 
						|
 | 
						|
  has_many :severed_relationships, through: :relationship_severance_event
 | 
						|
 | 
						|
  delegate :type,
 | 
						|
           :target_name,
 | 
						|
           :purged,
 | 
						|
           :purged?,
 | 
						|
           to: :relationship_severance_event,
 | 
						|
           prefix: false
 | 
						|
 | 
						|
  before_create :set_relationships_count!
 | 
						|
 | 
						|
  private
 | 
						|
 | 
						|
  def set_relationships_count!
 | 
						|
    self.followers_count = severed_relationships.about_local_account(account).passive.count
 | 
						|
    self.following_count = severed_relationships.about_local_account(account).active.count
 | 
						|
  end
 | 
						|
end
 |