From fc6aee57605d3b666c6e957fa373e60e02f52a67 Mon Sep 17 00:00:00 2001 From: Alexander Gabriel Date: Sun, 8 Feb 2026 14:06:08 +0000 Subject: [PATCH] ein paar models und migrateions --- app/Models/Contract.php | 10 +++++++ app/Models/Document.php | 16 ++++++++++ app/Models/User.php | 7 +++++ ...26_02_08_135203_create_documents_table.php | 29 +++++++++++++++++++ ...26_02_08_135341_create_contracts_table.php | 27 +++++++++++++++++ database/seeders/DatabaseSeeder.php | 13 +++++---- 6 files changed, 97 insertions(+), 5 deletions(-) create mode 100644 app/Models/Contract.php create mode 100644 app/Models/Document.php create mode 100644 database/migrations/2026_02_08_135203_create_documents_table.php create mode 100644 database/migrations/2026_02_08_135341_create_contracts_table.php diff --git a/app/Models/Contract.php b/app/Models/Contract.php new file mode 100644 index 0000000..0389331 --- /dev/null +++ b/app/Models/Contract.php @@ -0,0 +1,10 @@ +morphTo(); + } +} diff --git a/app/Models/User.php b/app/Models/User.php index 749c7b7..78c0e9f 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -3,6 +3,8 @@ namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; + +use App\Models\Document; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; @@ -45,4 +47,9 @@ class User extends Authenticatable 'password' => 'hashed', ]; } + + public function documents() + { + return $this->morphMany(Document::class, 'documentable'); + } } diff --git a/database/migrations/2026_02_08_135203_create_documents_table.php b/database/migrations/2026_02_08_135203_create_documents_table.php new file mode 100644 index 0000000..603b871 --- /dev/null +++ b/database/migrations/2026_02_08_135203_create_documents_table.php @@ -0,0 +1,29 @@ +id(); + $table->string('name'); + $table->morphs('documentable'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('documents'); + } +}; diff --git a/database/migrations/2026_02_08_135341_create_contracts_table.php b/database/migrations/2026_02_08_135341_create_contracts_table.php new file mode 100644 index 0000000..5b27aff --- /dev/null +++ b/database/migrations/2026_02_08_135341_create_contracts_table.php @@ -0,0 +1,27 @@ +id(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('contracts'); + } +}; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 6b901f8..bb23c17 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -15,11 +15,14 @@ class DatabaseSeeder extends Seeder */ public function run(): void { - // User::factory(10)->create(); - User::factory()->create([ - 'name' => 'Test User', - 'email' => 'test@example.com', - ]); + User::firstOrCreate( + ['email' => 'info@geoventis.de'], + [ + 'name' => 'Max Mustermann', + 'password' => bcrypt('servo3000'), + ] + ); + } }