Files
danbooru/db/migrate/20220525214746_create_upgrade_codes.rb
evazion 173e43b192 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.
2022-06-01 18:31:46 -05:00

23 lines
691 B
Ruby

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