2021-03-11 19:13:27 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
module Users
|
|
|
|
class UserFollowUser < ApplicationRecord
|
2022-11-25 23:54:43 +05:30
|
|
|
MAX_FOLLOWEE_LIMIT = 300
|
|
|
|
|
2021-03-11 19:13:27 +05:30
|
|
|
belongs_to :follower, class_name: 'User'
|
|
|
|
belongs_to :followee, class_name: 'User'
|
2022-11-25 23:54:43 +05:30
|
|
|
|
|
|
|
validate :max_follow_limit
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def max_follow_limit
|
|
|
|
followee_count = self.class.where(follower_id: follower_id).limit(MAX_FOLLOWEE_LIMIT).count
|
|
|
|
return if followee_count < MAX_FOLLOWEE_LIMIT
|
|
|
|
|
2023-07-09 08:55:56 +05:30
|
|
|
errors.add(
|
|
|
|
:base,
|
|
|
|
format(
|
|
|
|
_("You can't follow more than %{limit} users. To follow more users, unfollow some others."),
|
|
|
|
limit: MAX_FOLLOWEE_LIMIT
|
|
|
|
)
|
|
|
|
)
|
2022-11-25 23:54:43 +05:30
|
|
|
end
|
2021-03-11 19:13:27 +05:30
|
|
|
end
|
|
|
|
end
|