# == Schema Information # # Table name: address_endpoints # # id :integer not null, primary key # server_id :integer # uuid :string(255) # address :string(255) # last_used_at :datetime # created_at :datetime not null # updated_at :datetime not null # class AddressEndpoint < ApplicationRecord include HasUUID belongs_to :server has_many :routes, :as => :endpoint has_many :additional_route_endpoints, :dependent => :destroy, :as => :endpoint validates :address, :presence => true, :format => {:with => /@/}, :uniqueness => {:scope => [:server_id], :message => "has already been added"} before_destroy :update_routes def mark_as_used update_column(:last_used_at, Time.now) end def update_routes self.routes.each { |r| r.update(:endpoint => nil, :mode => 'Reject') } end def description self.address end def domain address.split('@', 2).last end end