FEAT: init admins group
This commit is contained in:
parent
1d0054c38e
commit
e2f792b44b
49 changed files with 708 additions and 3 deletions
|
@ -0,0 +1,9 @@
|
|||
class CreateAdminsGroupManagers < ActiveRecord::Migration[7.0]
|
||||
def change
|
||||
create_table "admins_group_managers" do |t|
|
||||
t.bigint :user_id, null: false
|
||||
t.index [:user_id], name: :index_admins_group_managers_on_user_id
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
15
db/migrate/20230813091838_create_admins_groups.rb
Normal file
15
db/migrate/20230813091838_create_admins_groups.rb
Normal file
|
@ -0,0 +1,15 @@
|
|||
class CreateAdminsGroups < ActiveRecord::Migration[7.0]
|
||||
def change
|
||||
create_table "admins_groups" do |t|
|
||||
t.string :name, null: false
|
||||
t.references :admins_group
|
||||
t.index [:name], name: :index_admins_groups_on_name
|
||||
t.timestamps
|
||||
end
|
||||
|
||||
create_join_table :admins_groups, :admins_group_managers do |t|
|
||||
t.index [:admins_group_id, :admins_group_manager_id], name: :index_on_admins_group_and_admins_group_manager
|
||||
t.index [:admins_group_manager_id, :admins_group_id], name: :index_on_admins_group_manager_and_admins_group
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,7 @@
|
|||
class AddAdminsGroupToAdministrateurs < ActiveRecord::Migration[7.0]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def change
|
||||
add_reference :administrateurs, :admins_group, index: { algorithm: :concurrently }, null: true
|
||||
end
|
||||
end
|
|
@ -0,0 +1,5 @@
|
|||
class AddForeignKeyAdminsGroupToAdministrateurs < ActiveRecord::Migration[7.0]
|
||||
def change
|
||||
add_foreign_key :administrateurs, :admins_groups, validate: false
|
||||
end
|
||||
end
|
|
@ -0,0 +1,5 @@
|
|||
class ValidateForeignKeyAdminsGroupToAdministrateurs < ActiveRecord::Migration[7.0]
|
||||
def change
|
||||
validate_foreign_key :administrateurs, :admins_groups
|
||||
end
|
||||
end
|
26
db/schema.rb
26
db/schema.rb
|
@ -61,9 +61,11 @@ ActiveRecord::Schema[7.0].define(version: 2023_09_28_083809) do
|
|||
end
|
||||
|
||||
create_table "administrateurs", id: :serial, force: :cascade do |t|
|
||||
t.bigint "admins_group_id"
|
||||
t.datetime "created_at", precision: 6
|
||||
t.datetime "updated_at", precision: 6
|
||||
t.bigint "user_id", null: false
|
||||
t.index ["admins_group_id"], name: "index_administrateurs_on_admins_group_id"
|
||||
t.index ["user_id"], name: "index_administrateurs_on_user_id"
|
||||
end
|
||||
|
||||
|
@ -88,6 +90,29 @@ ActiveRecord::Schema[7.0].define(version: 2023_09_28_083809) do
|
|||
t.index ["procedure_id"], name: "index_administrateurs_procedures_on_procedure_id"
|
||||
end
|
||||
|
||||
create_table "admins_group_managers", force: :cascade do |t|
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.bigint "user_id", null: false
|
||||
t.index ["user_id"], name: "index_admins_group_managers_on_user_id"
|
||||
end
|
||||
|
||||
create_table "admins_group_managers_groups", id: false, force: :cascade do |t|
|
||||
t.bigint "admins_group_id", null: false
|
||||
t.bigint "admins_group_manager_id", null: false
|
||||
t.index ["admins_group_id", "admins_group_manager_id"], name: "index_on_admins_group_and_admins_group_manager"
|
||||
t.index ["admins_group_manager_id", "admins_group_id"], name: "index_on_admins_group_manager_and_admins_group"
|
||||
end
|
||||
|
||||
create_table "admins_groups", force: :cascade do |t|
|
||||
t.bigint "admins_group_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.string "name", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.index ["admins_group_id"], name: "index_admins_groups_on_admins_group_id"
|
||||
t.index ["name"], name: "index_admins_groups_on_name"
|
||||
end
|
||||
|
||||
create_table "api_tokens", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
||||
t.bigint "administrateur_id", null: false
|
||||
t.bigint "allowed_procedure_ids", array: true
|
||||
|
@ -1034,6 +1059,7 @@ ActiveRecord::Schema[7.0].define(version: 2023_09_28_083809) do
|
|||
|
||||
add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id"
|
||||
add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id"
|
||||
add_foreign_key "administrateurs", "admins_groups"
|
||||
add_foreign_key "administrateurs", "users"
|
||||
add_foreign_key "administrateurs_instructeurs", "administrateurs"
|
||||
add_foreign_key "administrateurs_instructeurs", "instructeurs"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue