sudara/alonetone

View on GitHub
app/models/mass_invite.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

class MassInvite < ApplicationRecord
  scope :recent, -> { order(created_at: :desc, id: :desc) }

  after_initialize :set_token, if: :new_record?

  has_many :mass_invite_signups
  has_many :users, through: :mass_invite_signups

  scope :active, -> { where(archived: false) }
  scope :archived, -> { where(archived: true) }

  validates :name, :token, presence: true

  def to_param
    token
  end

  private

  def set_token
    self.token ||= SecureRandom.alphanumeric(10)
  end
end

# == Schema Information
#
# Table name: mass_invites
#
#  id          :bigint(8)        not null, primary key
#  archived    :boolean          default(FALSE), not null
#  name        :text(65535)      not null
#  token       :string(255)      not null
#  users_count :integer          default(0), not null
#  created_at  :datetime         not null
#  updated_at  :datetime         not null
#
# Indexes
#
#  index_mass_invites_on_token  (token) UNIQUE
#