class SchoolToken < ApplicationRecord
  belongs_to :school

  after_initialize :touch_updated_at, unless: :new_record?

  def self.by_client(id)
    find_by(client: id, active: true)
  end

  def create_token
    token = TokenFactory.new.create

    self.access_token = token.token_hash
    self.client = token.client

    token
  end

  def validate_token(token)
    TokenFactory.new.validate_token(access_token, token)
  end

  private
    def touch_updated_at
      touch(:updated_at)
    end
end
