class Server < ApplicationRecord
  # enums must be placed above validations
  def self.status_enums
    %w(public private)
  end

  def self.which_type_enums
    %w(CS ADMIN PIXTECH RESCUE)
  end

  validates :name, presence: true, uniqueness: { case_sensitive: false }
  validates :status, inclusion: { in: Server.status_enums }
  validates :which_type, inclusion: { in: Server.which_type_enums }

  before_save :update_is_self

  def update_is_self
    if is_self
      Server.where(is_self: true).where.not(id: id).each { |s| s.update_attribute(:is_self, false) }
    end
  end

  def status_text
    I18n.t("server_statuses.#{status}")
  end
end
