# frozen_string_literal: true

module Chat::CategoryExtension
  extend ActiveSupport::Concern

  include Chatable

  prepended { has_one :category_channel, as: :chatable, dependent: :destroy }

  def cannot_delete_reason
    return I18n.t("category.cannot_delete.has_chat_channels") if category_channel
    super
  end

  def deletable_for_chat?
    return true if !category_channel
    category_channel.chat_messages_empty?
  end
end
