37 lines
1.1 KiB
Ruby
37 lines
1.1 KiB
Ruby
class CreatePolls < ActiveRecord::Migration[4.2]
|
|
def change
|
|
create_table :polls do |t|
|
|
t.integer :created_by_user_id, null: false
|
|
t.string :name, null: false
|
|
t.text :description
|
|
t.datetime :starts
|
|
t.datetime :ends
|
|
t.boolean :one_vote_per_ordergroup, default: false, null: false
|
|
t.text :required_ordergroup_custom_fields
|
|
t.text :required_user_custom_fields
|
|
t.integer :voting_method, null: false
|
|
t.string :choices, array: true, null: false
|
|
t.integer :final_choice, index: true
|
|
t.integer :multi_select_count, default: 0, null: false
|
|
t.integer :min_points
|
|
t.integer :max_points
|
|
t.timestamps
|
|
end
|
|
|
|
create_table :poll_votes do |t|
|
|
t.references :poll, null: false
|
|
t.references :user, null: false
|
|
t.references :ordergroup
|
|
t.text :note
|
|
t.timestamps
|
|
t.index [:poll_id, :user_id, :ordergroup_id], unique: true
|
|
end
|
|
|
|
create_table :poll_choices do |t|
|
|
t.references :poll_vote, null: false
|
|
t.integer :choice, null: false
|
|
t.integer :value, null: false
|
|
t.index [:poll_vote_id, :choice], unique: true
|
|
end
|
|
end
|
|
end
|