Files
KanbanGit/database/seeders/TicketFieldValueSeeder.php
T

47 lines
1.5 KiB
PHP

<?php
namespace Database\Seeders;
use App\Models\Project;
use App\Models\Ticket;
use App\Models\TicketFieldDefinition;
use App\Models\TicketFieldValue;
use App\Models\User;
use Illuminate\Database\Seeder;
class TicketFieldValueSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$defaultUser = User::query()
->orderBy('id')
->first();
Project::query()
->with(['ticketFieldDefinitions', 'tickets'])
->orderBy('id')
->get()
->each(function (Project $project) use ($defaultUser): void {
/** @var TicketFieldDefinition $fieldDefinition */
foreach ($project->ticketFieldDefinitions as $fieldDefinition) {
/** @var Ticket $ticket */
foreach ($project->tickets as $ticket) {
TicketFieldValue::factory()->create([
'ticket_field_definition_id' => $fieldDefinition->id,
'ticket_id' => $ticket->id,
'value_number' => $fieldDefinition->field_type === 'number'
? (float) ($ticket->sequence_number + 2)
: null,
'value_user_id' => $fieldDefinition->field_type === 'user'
? $defaultUser?->id
: null,
]);
}
}
});
}
}