class TopicListItemSerializer < ListableTopicSerializer

  attributes :views,
             :like_count,
             :starred,
             :has_summary,
             :archetype,
             :last_poster_username,
             :category_id

  has_many :posters, serializer: TopicPosterSerializer, embed: :objects
  has_many :participants, serializer: TopicPosterSerializer, embed: :objects

  def starred
    object.user_data.starred?
  end

  alias :include_starred? :has_user_data

  def posters
    object.posters || []
  end

  def last_poster_username
    posters.find { |poster| poster.user.id == object.last_post_user_id }.try(:user).try(:username)
  end

  def participants
    object.participants_summary || []
  end

  def include_participants?
    object.private_message?
  end

end