discourse-ai/app/serializers/ai_topic_summary_serializer.rb

28 lines
767 B
Ruby

# frozen_string_literal: true
class AiTopicSummarySerializer < ApplicationSerializer
attributes :summarized_text,
:algorithm,
:outdated,
:can_regenerate,
:new_posts_since_summary,
:updated_at
def can_regenerate
scope.can_request_summary?
end
def new_posts_since_summary
# Postgres uses discrete range types for int4range, which means
# (1..2) is stored as (1...3).
#
# We use Range#max to work around this, which in the case above always returns 2.
# Be careful with using Range#end here, it could lead to unexpected results as:
#
# (1..2).end => 2
# (1...3).end => 3
object.target.highest_post_number.to_i - object.content_range&.max.to_i
end
end