Add waiting room to create programming groups (#1919)

Co-authored-by: Sebastian Serth <Sebastian.Serth@hpi.de>
This commit is contained in:
Kira Grammel
2023-09-21 15:07:10 +02:00
committed by GitHub
parent 1dfc306e76
commit 9f837412c7
15 changed files with 174 additions and 48 deletions

View File

@ -0,0 +1,14 @@
# frozen_string_literal: true
class CreatePairProgrammingWaitingUsers < ActiveRecord::Migration[7.0]
def change
create_table :pair_programming_waiting_users, id: :uuid do |t|
t.references :user, index: true, null: false, polymorphic: true
t.references :exercise, index: true, null: false, foreign_key: true
t.references :programming_group, index: true, null: true, foreign_key: true
t.integer :status, limit: 1, null: false, comment: 'Used as enum in Rails'
t.timestamps
end
end
end

View File

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.0].define(version: 2023_09_12_162208) do
ActiveRecord::Schema[7.0].define(version: 2023_09_20_094122) do
# These are extensions that must be enabled in order to support this database
enable_extension "pg_trgm"
enable_extension "pgcrypto"
@ -401,6 +401,19 @@ ActiveRecord::Schema[7.0].define(version: 2023_09_12_162208) do
t.index ["user_type", "user_id"], name: "index_pair_programming_exercise_feedbacks_on_user"
end
create_table "pair_programming_waiting_users", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
t.string "user_type", null: false
t.bigint "user_id", null: false
t.bigint "exercise_id", null: false
t.bigint "programming_group_id"
t.integer "status", limit: 2, null: false, comment: "Used as enum in Rails"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["exercise_id"], name: "index_pair_programming_waiting_users_on_exercise_id"
t.index ["programming_group_id"], name: "index_pair_programming_waiting_users_on_programming_group_id"
t.index ["user_type", "user_id"], name: "index_pair_programming_waiting_users_on_user"
end
create_table "programming_group_memberships", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
t.bigint "programming_group_id", null: false
t.string "user_type", null: false
@ -666,6 +679,8 @@ ActiveRecord::Schema[7.0].define(version: 2023_09_12_162208) do
add_foreign_key "pair_programming_exercise_feedbacks", "programming_groups"
add_foreign_key "pair_programming_exercise_feedbacks", "study_groups"
add_foreign_key "pair_programming_exercise_feedbacks", "submissions"
add_foreign_key "pair_programming_waiting_users", "exercises"
add_foreign_key "pair_programming_waiting_users", "programming_groups"
add_foreign_key "programming_group_memberships", "programming_groups"
add_foreign_key "programming_groups", "exercises"
add_foreign_key "remote_evaluation_mappings", "study_groups"