user upgrades: add upgrade code system.
Add a system for upgrading accounts using upgrade codes. Users purchase an upgrade code off-site then redeem it on-site to upgrade their account to Gold. Upgrade codes are randomly pre-generated and are one time use only. Codes have enough randomness that guessing a code is infeasible.
This commit is contained in:
22
db/migrate/20220525214746_create_upgrade_codes.rb
Normal file
22
db/migrate/20220525214746_create_upgrade_codes.rb
Normal file
@@ -0,0 +1,22 @@
|
||||
class CreateUpgradeCodes < ActiveRecord::Migration[7.0]
|
||||
def change
|
||||
create_table :upgrade_codes do |t|
|
||||
t.timestamps
|
||||
t.string :code, null: false
|
||||
t.integer :status, null: false
|
||||
t.integer :creator_id, null: false
|
||||
t.integer :redeemer_id
|
||||
t.integer :user_upgrade_id
|
||||
|
||||
t.index :code, unique: true
|
||||
t.index :status
|
||||
t.index :creator_id
|
||||
t.index :redeemer_id, where: "redeemer_id IS NOT NULL"
|
||||
t.index :user_upgrade_id, where: "user_upgrade_id IS NOT NULL"
|
||||
|
||||
t.foreign_key :users, column: :creator_id
|
||||
t.foreign_key :users, column: :redeemer_id
|
||||
t.foreign_key :user_upgrades, column: :user_upgrade_id
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user