# frozen_string_literal: true class TopicSubtype include ActiveModel::Serialization attr_accessor :id, :options def initialize(id, options) @id = id @options = options end def attributes { "id" => @id, "options" => @options } end def self.list return [] unless @archetypes.present? @archetypes.values end def self.user_to_user "user_to_user" end def self.system_message "system_message" end def self.moderator_warning "moderator_warning" end def self.notify_moderators "notify_moderators" end def self.notify_user "notify_user" end def self.pending_users_reminder "pending_users" end def self.register(name, options = {}) @subtypes ||= {} @subtypes[name] = TopicSubtype.new(name, options) end register "user_to_user" register "system_message" register "moderator_warning" register "notify_moderators" register "notify_user" end