123456789101112131415161718192021222324252627282930313233 |
- # frozen_string_literal: true
- # == Schema Information
- #
- # Table name: status_pins
- #
- # id :bigint(8) not null, primary key
- # account_id :bigint(8) not null
- # status_id :bigint(8) not null
- # created_at :datetime not null
- # updated_at :datetime not null
- #
- class StatusPin < ApplicationRecord
- belongs_to :account
- belongs_to :status
- validates_with StatusPinValidator
- after_destroy :invalidate_cleanup_info, if: %i(account_matches_status_account? account_local?)
- delegate :local?, to: :account, prefix: true
- private
- def invalidate_cleanup_info
- account.statuses_cleanup_policy&.invalidate_last_inspected(status, :unpin)
- end
- def account_matches_status_account?
- status&.account_id == account_id
- end
- end
|