# frozen_string_literal: true class REST::ChatConversationAccountSerializer < ActiveModel::Serializer attributes :id, :is_hidden, :is_approved, :unread_count, :is_unread, :chat_conversation_id, :created_at, :is_muted, :chat_message_expiration_policy has_many :participant_accounts, key: :other_accounts, serializer: REST::AccountSerializer has_one :last_chat_message, serializer: REST::ChatMessageSerializer, unless: :last_chat_message_id? def id object.id.to_s end def chat_conversation_id object.chat_conversation_id.to_s end def last_chat_message_id? object.last_chat_message_id.nil? end def is_unread object.unread_count > 0 end def chat_message_expiration_policy case object.chat_message_expiration_policy when ChatConversationAccount::EXPIRATION_POLICY_MAP[:five_minutes] return 'five_minutes' when ChatConversationAccount::EXPIRATION_POLICY_MAP[:one_hour] return 'one_hour' when ChatConversationAccount::EXPIRATION_POLICY_MAP[:six_hours] return 'six_hours' when ChatConversationAccount::EXPIRATION_POLICY_MAP[:one_day] return 'one_day' when ChatConversationAccount::EXPIRATION_POLICY_MAP[:three_days] return 'three_days' when ChatConversationAccount::EXPIRATION_POLICY_MAP[:one_week] return 'one_week' else return nil end end end