mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-04-05 22:21:26 +00:00
Added queues for mats and provided a way for tournament directors to move matches to a mat.
This commit is contained in:
49
db/migrate/20260129120000_add_queues_to_mats.rb
Normal file
49
db/migrate/20260129120000_add_queues_to_mats.rb
Normal file
@@ -0,0 +1,49 @@
|
||||
class AddQueuesToMats < ActiveRecord::Migration[7.0]
|
||||
class Mat < ActiveRecord::Base
|
||||
self.table_name = "mats"
|
||||
has_many :matches, class_name: "AddQueuesToMats::Match", foreign_key: "mat_id"
|
||||
end
|
||||
|
||||
class Match < ActiveRecord::Base
|
||||
self.table_name = "matches"
|
||||
end
|
||||
|
||||
def up
|
||||
add_column :mats, :queue1, :bigint
|
||||
add_column :mats, :queue2, :bigint
|
||||
add_column :mats, :queue3, :bigint
|
||||
add_column :mats, :queue4, :bigint
|
||||
|
||||
add_index :mats, :queue1
|
||||
add_index :mats, :queue2
|
||||
add_index :mats, :queue3
|
||||
add_index :mats, :queue4
|
||||
|
||||
say_with_time "Backfilling mat queues from unfinished matches" do
|
||||
Mat.reset_column_information
|
||||
Match.reset_column_information
|
||||
|
||||
Mat.find_each do |mat|
|
||||
match_ids = mat.matches.where(finished: [nil, 0]).order(:bout_number).limit(4).pluck(:id)
|
||||
mat.update_columns(
|
||||
queue1: match_ids[0],
|
||||
queue2: match_ids[1],
|
||||
queue3: match_ids[2],
|
||||
queue4: match_ids[3]
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
remove_index :mats, :queue1
|
||||
remove_index :mats, :queue2
|
||||
remove_index :mats, :queue3
|
||||
remove_index :mats, :queue4
|
||||
|
||||
remove_column :mats, :queue1
|
||||
remove_column :mats, :queue2
|
||||
remove_column :mats, :queue3
|
||||
remove_column :mats, :queue4
|
||||
end
|
||||
end
|
||||
10
db/schema.rb
10
db/schema.rb
@@ -10,7 +10,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema[8.0].define(version: 2025_04_15_173921) do
|
||||
ActiveRecord::Schema[8.0].define(version: 2026_01_29_120000) do
|
||||
create_table "mat_assignment_rules", force: :cascade do |t|
|
||||
t.bigint "tournament_id"
|
||||
t.bigint "mat_id"
|
||||
@@ -56,6 +56,14 @@ ActiveRecord::Schema[8.0].define(version: 2025_04_15_173921) do
|
||||
t.bigint "tournament_id"
|
||||
t.datetime "created_at", precision: nil
|
||||
t.datetime "updated_at", precision: nil
|
||||
t.bigint "queue1"
|
||||
t.bigint "queue2"
|
||||
t.bigint "queue3"
|
||||
t.bigint "queue4"
|
||||
t.index ["queue1"], name: "index_mats_on_queue1"
|
||||
t.index ["queue2"], name: "index_mats_on_queue2"
|
||||
t.index ["queue3"], name: "index_mats_on_queue3"
|
||||
t.index ["queue4"], name: "index_mats_on_queue4"
|
||||
t.index ["tournament_id"], name: "index_mats_on_tournament_id"
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user