41 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			41 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
 |