class User < ActiveRecord::Base
  include ActiveModel::ForbiddenAttributesProtection
  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable,
  # :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable, :recoverable, :rememberable,
    :trackable, :validatable
  validates_formatting_of :email, using: :email
  validates_formatting_of :sms_number, using: :us_phone, allow_blank: true
  validates_formatting_of :voice_number, using: :us_phone, allow_blank: true
  validates_formatting_of :zip, using: :us_zip, allow_blank: true
  validates_presence_of :name
  has_many :reminders_to, class_name: "Reminder", foreign_key: "to_user_id"
  has_many :reminders_from, class_name: "Reminder", foreign_key: "from_user_id"
  has_many :things
  before_validation :remove_non_digits_from_phone_numbers
  def remove_non_digits_from_phone_numbers
    self.sms_number = self.sms_number.to_s.gsub(/\D/, '').to_i if self.sms_number.present?
    self.voice_number = self.voice_number.to_s.gsub(/\D/, '').to_i if self.voice_number.present?
  end
end