# frozen_string_literal: true

class AdminEmailTemplateSerializer < ApplicationSerializer
  attributes :id, :title, :subject, :body, :can_revert?

  def id
    object
  end

  def title
    if I18n.exists?("#{object}.title")
      I18n.t("#{object}.title")
    else
      object.gsub(/.*\./, '').titleize
    end
  end

  def subject
    if I18n.exists?("#{object}.subject_template.other")
      @subject = nil
    else
      @subject ||= I18n.t("#{object}.subject_template")
    end
  end

  def body
    @body ||= I18n.t("#{object}.text_body_template")
  end

  def can_revert?
    subject_key = "#{object}.subject_template"
    body_key = "#{object}.text_body_template"
    keys = [subject_key, body_key]
    if options[:overridden_keys]
      keys.any? { |k| options[:overridden_keys].include?(k) }
    else
      TranslationOverride.exists?(locale: I18n.locale, translation_key: keys)
    end
  end
end