class Server < ActiveRecord::Base
  has_many :titles, dependent: :nullify

  validates :name, presence: true, uniqueness: { case_sensitive: false }
  validates :is_self, inclusion: { in: [true, false] }
  validates :status, inclusion: { in: %w(public private) }
  validates :which_type, inclusion: { in: %w(CS ADMIN PIXTECH RESCUE) }

  before_save :update_is_self

  def update_is_self
     if is_self
       t =  Server.all.collect{|s| s.id}-[id]
       Server.where(is_self: true, id: t).each{ |s| s.update_attribute(:is_self,false) }
    end
  end

  def self.itself?(server)
    #self.find_by(is_self: true).name == server
    server.include?(self.find_by(is_self: true).name)
  end

  def self.type_is?(type)
    self.find_by(is_self: true).which_type == type
  end

  def self.itself_production?
    self.find_by(is_self: true).srv_type == 'production'
  end
end
