Various fixes for DB seeding

This commit is contained in:
2025-12-04 22:37:16 +01:00
parent 0200c38f30
commit b7a880d66a
12 changed files with 71 additions and 75 deletions
+27 -21
View File
@@ -26,7 +26,31 @@ public function definition()
$hasMatrix = rand(0, 9) >= 7;
$hasGithub = rand(0, 9) >= 7;
$contact = [
$onlineAccounts = [];
if ($hasLinkedIn) {
$onlineAccounts[] = [
'platform' => 'linkedin',
'user_name' => $userName,
'url' => 'https://www.linkedin.com/in/' . $userName
];
}
if ($hasMatrix) {
$onlineAccounts[] = [
'platform' => 'matrix',
'user_name' => $userName,
'url' => '@' . $userName . ':matrix.org'
];
}
if ($hasGithub) {
$onlineAccounts[] = [
'platform' => 'github',
'user_name' => $userName,
'url' => 'https://www.github.com/' . $userName
];
}
return [
'is_primary' => $this->faker->boolean(30),
'salutation' => $this->faker->title($gender),
'first_name' => $this->faker->firstName($gender),
@@ -36,25 +60,7 @@ public function definition()
'phone' => $this->faker->phoneNumber(),
'mobile_phone' => $this->faker->phoneNumber(),
'avatar' => $avatar,
'online_accounts' => []
'online_accounts' => $onlineAccounts
];
if ($hasLinkedIn) $contact[] = [
'platform' => 'linkedin',
'user_name' => $userName,
'url' => 'https://www.linkedin.com/in/' . $userName
];
if ($hasMatrix) $contact[] = [
'platform' => 'matrix',
'user_name' => $userName,
'url' => '@' . $userName . ':matrix.org'
];
if ($hasGithub) $contact[] = [
'platform' => 'github',
'user_name' => $userName,
'url' => 'https://www.github.com/' . $userName
];
return $contact;
}
}
}
+3 -1
View File
@@ -11,13 +11,15 @@ public function definition(): array
{
$isSection = rand(0, 10) > 7;
$unit = Unit::where('name', $this->faker->randomElement(['Stück', 'Stunden', 'Tage', 'pauschal']))->first();
return [
'position' => $this->faker->numberBetween(1, 10) + ($isSection ? 0.5 : 0),
'is_section' => $isSection,
'title' => $this->faker->words(3, true),
'description' => $this->faker->sentence(),
'quantity' => $this->faker->numberBetween(1, 10),
'unit_id' => Unit::factory(),
'unit_id' => $unit ? $unit->id : null,
'price' => $this->faker->randomFloat(2, 10, 500),
];
}
@@ -15,34 +15,6 @@ public function up()
$table->integer('days')->nullable();
$table->timestamps();
});
// Fügen Sie Standard-Zahlungsziele hinzu
DB::table('payment_terms')->insert([
[
'name' => 'prepaid',
'description' => 'Vorkasse',
'is_fixed' => true,
'days' => null,
'created_at' => now(),
'updated_at' => now()
],
[
'name' => 'onReceipt',
'description' => 'Bei Rechnungserhalt',
'is_fixed' => true,
'days' => null,
'created_at' => now(),
'updated_at' => now()
],
[
'name' => 'daysAfterInvoice',
'description' => 'Zahlungsziel in Tagen',
'is_fixed' => false,
'days' => 14,
'created_at' => now(),
'updated_at' => now()
]
]);
}
public function down()
@@ -15,8 +15,6 @@ public function up(): void
$table->id();
$table->foreignId('user_id')->constrained()->nullOnDelete();
$table->text('text');
// Polymorphische Beziehung
$table->unsignedBigInteger('notable_id');
$table->string('notable_type');
@@ -15,14 +15,6 @@ public function up(): void
$table->string('symbol', 10)->nullable();
$table->timestamps();
});
// Füge Standard-Einheiten hinzu
DB::table('units')->insert([
['name' => 'Stück', 'symbol' => 'Stk'],
['name' => 'Stunden', 'symbol' => 'h'],
['name' => 'Tage', 'symbol' => 'd'],
['name' => 'pauschal', 'symbol' => 'p'],
]);
}
public function down(): void
+3 -1
View File
@@ -21,6 +21,7 @@ public function run(): void
PaymentTermsSeeder::class,
SettingsTableSeeder::class,
TodoTypeSeeder::class,
UnitSeeder::class,
]);
$user = User::factory()->create([
@@ -46,7 +47,8 @@ public function run(): void
// Create some notes for each customer
Note::factory(rand(0, 5))->create([
'user_id' => $user->id,
'customer_id' => $customer->id,
'notable_id' => $customer->id,
'notable_type' => Customer::class,
]);
});
+2 -1
View File
@@ -15,9 +15,10 @@ public function run(): void
'is_fixed' => true,
'days' => null
]);
PaymentTerms::create([
'name' => 'onReceipt',
'description' => 'Bei Rechnungserhalt',
'is_fixed' => true,
'days' => null
]);
+17
View File
@@ -0,0 +1,17 @@
<?php
namespace Database\Seeders;
use App\Models\Unit;
use Illuminate\Database\Seeder;
class UnitSeeder extends Seeder
{
public function run(): void
{
Unit::create(['name' => 'Stück', 'symbol' => 'Stk']);
Unit::create(['name' => 'Stunden', 'symbol' => 'h']);
Unit::create(['name' => 'Tage', 'symbol' => 'd']);
Unit::create(['name' => 'pauschal', 'symbol' => 'p']);
}
}