class User < ApplicationRecord
  ROLES = %w[admin coach parent volunteer].freeze

  has_secure_password

  has_many :user_teams, dependent: :destroy
  has_many :teams, through: :user_teams
  has_many :stream_sessions, dependent: :nullify

  validates :email, presence: true, uniqueness: true, format: { with: URI::MailTo::EMAIL_REGEXP }
  validates :name, presence: true
  validates :role, inclusion: { in: ROLES }

  def admin?
    role == "admin"
  end
end
