Repository: ucan-lab/laravel-dacapo (php)

Issue:
Add primary modifier

Pull request description:
Add primary modifier
close #202

Patch:
diff --git a/src/Dacapo/Domain/Schema/Table/Column/ColumnModifier/ColumnModifierFactory.php b/src/Dacapo/Domain/Schema/Table/Column/ColumnModifier/ColumnModifierFactory.php
index 91d332d..8362902 100644
--- a/src/Dacapo/Domain/Schema/Table/Column/ColumnModifier/ColumnModifierFactory.php
+++ b/src/Dacapo/Domain/Schema/Table/Column/ColumnModifier/ColumnModifierFactory.php
@@ -24,6 +24,7 @@ final class ColumnModifierFactory
         'generatedAs' => GeneratedAsModifier::class,
         'index' => IndexModifier::class,
         'nullable' => NullableModifier::class,
+        'primary' => PrimaryModifier::class,
         'storedAs' => StoredAsModifier::class,
         'unique' => UniqueModifier::class,
         'unsigned' => UnsignedModifier::class,
diff --git a/src/Dacapo/Domain/Schema/Table/Column/ColumnModifier/PrimaryModifier.php b/src/Dacapo/Domain/Schema/Table/Column/ColumnModifier/PrimaryModifier.php
new file mode 100644
index 0000000..2172efe
--- /dev/null
+++ b/src/Dacapo/Domain/Schema/Table/Column/ColumnModifier/PrimaryModifier.php
@@ -0,0 +1,14 @@
+<?php declare(strict_types=1);
+
+namespace UcanLab\LaravelDacapo\Dacapo\Domain\Schema\Table\Column\ColumnModifier;
+
+final class PrimaryModifier extends ColumnModifier
+{
+    /**
+     * @return string
+     */
+    public function getName(): string
+    {
+        return 'primary';
+    }
+}


Test patch:
diff --git a/tests/Presentation/Console/DacapoCommandTest/mysql/primary/migrations/1970_01_01_000001_create_example4_table.php b/tests/Presentation/Console/DacapoCommandTest/mysql/primary/migrations/1970_01_01_000001_create_example4_table.php
new file mode 100644
index 0000000..ae90b71
--- /dev/null
+++ b/tests/Presentation/Console/DacapoCommandTest/mysql/primary/migrations/1970_01_01_000001_create_example4_table.php
@@ -0,0 +1,30 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+return new class extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('example4', function (Blueprint $table) {
+            $table->string('id')->primary();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('example4');
+    }
+};
diff --git a/tests/Presentation/Console/DacapoCommandTest/mysql/primary/schemas/schema.yml b/tests/Presentation/Console/DacapoCommandTest/mysql/primary/schemas/schema.yml
index f0b8b4c..009c778 100644
--- a/tests/Presentation/Console/DacapoCommandTest/mysql/primary/schemas/schema.yml
+++ b/tests/Presentation/Console/DacapoCommandTest/mysql/primary/schemas/schema.yml
@@ -21,3 +21,9 @@ example3:
     - columns: [no, joined_year]
       type: primary
       name: example_primary
+
+example4:
+  columns:
+    id:
+      type: string
+      primary: