<commit_before># frozen_string_literal: true

require "use_case/base"

module UseCase
  module Question
    class CreateFollowers < UseCase::Base
      option :source_user_id, type: Types::Coercible::Integer
      option :content, type: Types::Coercible::String
      option :author_identifier, type: Types::Coercible::String | Types::Nil

      def call
        question = ::Question.create!(
          content:             content,
          author_is_anonymous: false,
          author_identifier:   author_identifier,
          user:                source_user
        )

        increment_asked_count

        QuestionWorker.perform_async(source_user_id, question.id)

        {
          question: question
        }
      end

      private

      def increment_asked_count
        source_user.increment(:asked_count)
      end

      def source_user
        @source_user ||= ::User.find(source_user_id)
      end
    end
  end
end
<commit_msg>Always set follower created questions to not be direct explicitly<commit_after># frozen_string_literal: true

require "use_case/base"

module UseCase
  module Question
    class CreateFollowers < UseCase::Base
      option :source_user_id, type: Types::Coercible::Integer
      option :content, type: Types::Coercible::String
      option :author_identifier, type: Types::Coercible::String | Types::Nil

      def call
        question = ::Question.create!(
          content:             content,
          author_is_anonymous: false,
          author_identifier:   author_identifier,
          user:                source_user,
          direct:              false
        )

        increment_asked_count

        QuestionWorker.perform_async(source_user_id, question.id)

        {
          question: question
        }
      end

      private

      def increment_asked_count
        source_user.increment(:asked_count)
      end

      def source_user
        @source_user ||= ::User.find(source_user_id)
      end
    end
  end
end

{'fraction_non_alphanumeric': 0.071285140562249, 'fraction_numerical': 0.0, 'mean_word_length': 2.209339774557166, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3507816', 'n_tokens_mistral': 558, 'n_tokens_neox': 540, 'n_words': 123}