class CreatePromotionCodes < ActiveRecord::Migration[8.0] def change create_table :promotion_codes do |t| t.string :code, null: false t.integer :discount_amount_cents, null: false, default: 0 t.datetime :expires_at t.boolean :active, default: true, null: false t.integer :usage_limit, default: nil t.integer :uses_count, default: 0, null: false # Reference user(promoter) who has created the promotion code t.references :user, null: false, foreign_key: true t.references :event, null: false, foreign_key: true t.timestamps end # Unique index for code add_index :promotion_codes, :code, unique: true end end