Sha256: 87027012f7fe2c69a170a883e88b28627c80882271c66f7b4a02fa76d8c7428f

Contents?: true

Size: 975 Bytes

Versions: 3

Compression:

Stored size: 975 Bytes

Contents

# frozen_string_literal: true
module Thredded
  class UserDetail < ActiveRecord::Base
    include ModerationState

    belongs_to :user, class_name: Thredded.user_class, inverse_of: :thredded_user_detail
    validates :user_id, presence: true

    has_many :topics, class_name: 'Thredded::Topic', foreign_key: :user_id, primary_key: :user_id
    has_many :private_topics, class_name: 'Thredded::PrivateTopic', foreign_key: :user_id, primary_key: :user_id
    has_many :posts, class_name: 'Thredded::Post', foreign_key: :user_id, primary_key: :user_id
    has_many :private_posts, class_name: 'Thredded::PrivatePost', foreign_key: :user_id, primary_key: :user_id

    scope :recently_active, -> { where(arel_table[:last_seen_at].gt(Thredded.active_user_threshold.ago)) }

    before_save :set_moderation_state_changed_at

    private

    def set_moderation_state_changed_at
      self.moderation_state_changed_at = Time.current if moderation_state_changed?
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
thredded-0.6.0 app/models/thredded/user_detail.rb
thredded-0.5.1 app/models/thredded/user_detail.rb
thredded-0.5.0 app/models/thredded/user_detail.rb