From ada5c4a00456f4cf0e6e9e321a7d23323dea82cd Mon Sep 17 00:00:00 2001
From: Gael Yvert <Gael.Yvert@ens-lyon.fr>
Date: Fri, 11 Jun 2021 16:06:11 +0200
Subject: [PATCH] create relationships between projects and strains, oligos,
 celllines, plasmids, wellplates, antibodies (issue #66)

---
 ...11_123443_create_project_strains_table.php | 36 +++++++
 ..._11_132320_create_project_oligos_table.php | 35 +++++++
 ..._132331_create_project_celllines_table.php | 35 +++++++
 ...1_132340_create_project_plasmids_table.php | 35 +++++++
 ...132354_create_project_wellplates_table.php | 35 +++++++
 ...132407_create_project_antibodies_table.php | 35 +++++++
 ...lityTrackingByIseedDataRowsTableSeeder.php | 96 +++++++++++++++++++
 ...ityTrackingByIseedDataTypesTableSeeder.php | 12 +--
 8 files changed, 313 insertions(+), 6 deletions(-)
 create mode 100644 database/migrations/2021_06_11_123443_create_project_strains_table.php
 create mode 100644 database/migrations/2021_06_11_132320_create_project_oligos_table.php
 create mode 100644 database/migrations/2021_06_11_132331_create_project_celllines_table.php
 create mode 100644 database/migrations/2021_06_11_132340_create_project_plasmids_table.php
 create mode 100644 database/migrations/2021_06_11_132354_create_project_wellplates_table.php
 create mode 100644 database/migrations/2021_06_11_132407_create_project_antibodies_table.php

diff --git a/database/migrations/2021_06_11_123443_create_project_strains_table.php b/database/migrations/2021_06_11_123443_create_project_strains_table.php
new file mode 100644
index 0000000..6dc9405
--- /dev/null
+++ b/database/migrations/2021_06_11_123443_create_project_strains_table.php
@@ -0,0 +1,36 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class CreateProjectStrainsTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('project_strains', function (Blueprint $table) {
+            $table->id();
+
+            $table->bigInteger('project_id');
+            $table->bigInteger('strain_id');
+
+
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('project_strains');
+    }
+}
diff --git a/database/migrations/2021_06_11_132320_create_project_oligos_table.php b/database/migrations/2021_06_11_132320_create_project_oligos_table.php
new file mode 100644
index 0000000..da4d72e
--- /dev/null
+++ b/database/migrations/2021_06_11_132320_create_project_oligos_table.php
@@ -0,0 +1,35 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class CreateProjectOligosTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('project_oligos', function (Blueprint $table) {
+            $table->id();
+
+            $table->bigInteger('project_id');
+            $table->bigInteger('oligo_id');
+
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('project_oligos');
+    }
+}
diff --git a/database/migrations/2021_06_11_132331_create_project_celllines_table.php b/database/migrations/2021_06_11_132331_create_project_celllines_table.php
new file mode 100644
index 0000000..8e2cabe
--- /dev/null
+++ b/database/migrations/2021_06_11_132331_create_project_celllines_table.php
@@ -0,0 +1,35 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class CreateProjectCelllinesTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('project_celllines', function (Blueprint $table) {
+            $table->id();
+
+            $table->bigInteger('project_id');
+            $table->bigInteger('cellline_id');
+
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('project_celllines');
+    }
+}
diff --git a/database/migrations/2021_06_11_132340_create_project_plasmids_table.php b/database/migrations/2021_06_11_132340_create_project_plasmids_table.php
new file mode 100644
index 0000000..4f4e688
--- /dev/null
+++ b/database/migrations/2021_06_11_132340_create_project_plasmids_table.php
@@ -0,0 +1,35 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class CreateProjectPlasmidsTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('project_plasmids', function (Blueprint $table) {
+            $table->id();
+
+            $table->bigInteger('project_id');
+            $table->bigInteger('plasmid_id');
+
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('project_plasmids');
+    }
+}
diff --git a/database/migrations/2021_06_11_132354_create_project_wellplates_table.php b/database/migrations/2021_06_11_132354_create_project_wellplates_table.php
new file mode 100644
index 0000000..e44acd4
--- /dev/null
+++ b/database/migrations/2021_06_11_132354_create_project_wellplates_table.php
@@ -0,0 +1,35 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class CreateProjectWellplatesTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('project_wellplates', function (Blueprint $table) {
+            $table->id();
+
+            $table->bigInteger('project_id');
+            $table->bigInteger('wellplate_id');
+
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('project_wellplates');
+    }
+}
diff --git a/database/migrations/2021_06_11_132407_create_project_antibodies_table.php b/database/migrations/2021_06_11_132407_create_project_antibodies_table.php
new file mode 100644
index 0000000..2435123
--- /dev/null
+++ b/database/migrations/2021_06_11_132407_create_project_antibodies_table.php
@@ -0,0 +1,35 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class CreateProjectAntibodiesTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('project_antibodies', function (Blueprint $table) {
+            $table->id();
+
+            $table->bigInteger('project_id');
+            $table->bigInteger('antibody_id');
+
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('project_antibodies');
+    }
+}
diff --git a/database/seeders/FunctionalityTrackingByIseedDataRowsTableSeeder.php b/database/seeders/FunctionalityTrackingByIseedDataRowsTableSeeder.php
index 47e5e5d..281eb47 100755
--- a/database/seeders/FunctionalityTrackingByIseedDataRowsTableSeeder.php
+++ b/database/seeders/FunctionalityTrackingByIseedDataRowsTableSeeder.php
@@ -3587,6 +3587,102 @@ class FunctionalityTrackingByIseedDataRowsTableSeeder extends Seeder
                 'required' => 0,
                 'type' => 'relationship',
             ),
+            223 => 
+            array (
+                'add' => 1,
+                'browse' => 1,
+                'data_type_id' => 29,
+                'delete' => 1,
+                'details' => '{"foreign_pivot_key":"strain_id","related_pivot_key":"project_id","parent_key":"id","model":"App\\\\Project","table":"projects","type":"belongsToMany","column":"id","key":"id","label":"name","pivot_table":"project_strains","pivot":"1","taggable":"on"}',
+                'display_name' => 'projects',
+                'edit' => 1,
+                'field' => 'strain_belongstomany_project_relationship',
+                'id' => 311,
+                'order' => 35,
+                'read' => 1,
+                'required' => 0,
+                'type' => 'relationship',
+            ),
+            224 => 
+            array (
+                'add' => 1,
+                'browse' => 1,
+                'data_type_id' => 15,
+                'delete' => 1,
+                'details' => '{"foreign_pivot_key":"oligo_id","related_pivot_key":"project_id","parent_key":"id","model":"App\\\\Project","table":"projects","type":"belongsToMany","column":"id","key":"id","label":"name","pivot_table":"project_oligos","pivot":"1","taggable":"on"}',
+                'display_name' => 'projects',
+                'edit' => 1,
+                'field' => 'oligo_belongstomany_project_relationship',
+                'id' => 312,
+                'order' => 13,
+                'read' => 1,
+                'required' => 0,
+                'type' => 'relationship',
+            ),
+            225 => 
+            array (
+                'add' => 1,
+                'browse' => 1,
+                'data_type_id' => 24,
+                'delete' => 1,
+                'details' => '{"foreign_pivot_key":"cellline_id","related_pivot_key":"project_id","parent_key":"id","model":"App\\\\Project","table":"projects","type":"belongsToMany","column":"id","key":"id","label":"name","pivot_table":"project_celllines","pivot":"1","taggable":"on"}',
+                'display_name' => 'projects',
+                'edit' => 1,
+                'field' => 'cell_line_belongstomany_project_relationship',
+                'id' => 313,
+                'order' => 10,
+                'read' => 1,
+                'required' => 0,
+                'type' => 'relationship',
+            ),
+            226 => 
+            array (
+                'add' => 1,
+                'browse' => 1,
+                'data_type_id' => 20,
+                'delete' => 1,
+                'details' => '{"foreign_pivot_key":"plasmid_id","related_pivot_key":"project_id","parent_key":"id","model":"App\\\\Project","table":"projects","type":"belongsToMany","column":"id","key":"id","label":"name","pivot_table":"project_plasmids","pivot":"1","taggable":"on"}',
+                'display_name' => 'projects',
+                'edit' => 1,
+                'field' => 'plasmid_belongstomany_project_relationship',
+                'id' => 314,
+                'order' => 25,
+                'read' => 1,
+                'required' => 0,
+                'type' => 'relationship',
+            ),
+            227 => 
+            array (
+                'add' => 1,
+                'browse' => 1,
+                'data_type_id' => 45,
+                'delete' => 1,
+                'details' => '{"foreign_pivot_key":"wellplate_id","related_pivot_key":"project_id","parent_key":"id","model":"App\\\\Project","table":"projects","type":"belongsToMany","column":"id","key":"id","label":"name","pivot_table":"project_wellplates","pivot":"1","taggable":"on"}',
+                'display_name' => 'projects',
+                'edit' => 1,
+                'field' => 'wellplate_belongstomany_project_relationship',
+                'id' => 315,
+                'order' => 16,
+                'read' => 1,
+                'required' => 0,
+                'type' => 'relationship',
+            ),
+            228 => 
+            array (
+                'add' => 1,
+                'browse' => 1,
+                'data_type_id' => 13,
+                'delete' => 1,
+                'details' => '{"foreign_pivot_key":"antibody_id","related_pivot_key":"project_id","parent_key":"id","model":"App\\\\Project","table":"projects","type":"belongsToMany","column":"id","key":"id","label":"name","pivot_table":"project_antibodies","pivot":"1","taggable":"on"}',
+                'display_name' => 'projects',
+                'edit' => 1,
+                'field' => 'antibody_belongstomany_project_relationship',
+                'id' => 316,
+                'order' => 15,
+                'read' => 1,
+                'required' => 0,
+                'type' => 'relationship',
+            ),
         ));
         
         
diff --git a/database/seeders/FunctionalityTrackingByIseedDataTypesTableSeeder.php b/database/seeders/FunctionalityTrackingByIseedDataTypesTableSeeder.php
index 39cfcb5..d15184c 100755
--- a/database/seeders/FunctionalityTrackingByIseedDataTypesTableSeeder.php
+++ b/database/seeders/FunctionalityTrackingByIseedDataTypesTableSeeder.php
@@ -89,7 +89,7 @@ class FunctionalityTrackingByIseedDataTypesTableSeeder extends Seeder
                 'policy_name' => NULL,
                 'server_side' => 0,
                 'slug' => 'antibodies',
-                'updated_at' => '2021-06-08 13:33:18',
+                'updated_at' => '2021-06-11 14:03:45',
             ),
             4 => 
             array (
@@ -125,7 +125,7 @@ class FunctionalityTrackingByIseedDataTypesTableSeeder extends Seeder
                 'policy_name' => NULL,
                 'server_side' => 0,
                 'slug' => 'oligos',
-                'updated_at' => '2021-06-08 13:33:58',
+                'updated_at' => '2021-06-11 14:00:45',
             ),
             6 => 
             array (
@@ -143,7 +143,7 @@ class FunctionalityTrackingByIseedDataTypesTableSeeder extends Seeder
                 'policy_name' => NULL,
                 'server_side' => 0,
                 'slug' => 'plasmids',
-                'updated_at' => '2021-06-08 13:32:59',
+                'updated_at' => '2021-06-11 14:02:23',
             ),
             7 => 
             array (
@@ -179,7 +179,7 @@ class FunctionalityTrackingByIseedDataTypesTableSeeder extends Seeder
                 'policy_name' => NULL,
                 'server_side' => 0,
                 'slug' => 'cell-lines',
-                'updated_at' => '2021-06-08 13:33:39',
+                'updated_at' => '2021-06-11 14:01:21',
             ),
             9 => 
             array (
@@ -251,7 +251,7 @@ class FunctionalityTrackingByIseedDataTypesTableSeeder extends Seeder
                 'policy_name' => NULL,
                 'server_side' => 1,
                 'slug' => 'strains',
-                'updated_at' => '2021-06-08 13:34:42',
+                'updated_at' => '2021-06-11 13:58:07',
             ),
             13 => 
             array (
@@ -413,7 +413,7 @@ class FunctionalityTrackingByIseedDataTypesTableSeeder extends Seeder
                 'policy_name' => NULL,
                 'server_side' => 0,
                 'slug' => 'wellplates',
-                'updated_at' => '2021-06-11 08:17:04',
+                'updated_at' => '2021-06-11 14:03:07',
             ),
             22 => 
             array (
-- 
GitLab