Files
KanbanGit/app/Actions/ProjectTicketMetadata/InitializeProjectTicketMetadata.php
T

43 lines
1.1 KiB
PHP

<?php
namespace App\Actions\ProjectTicketMetadata;
use App\Models\Project;
use App\Models\TicketType;
class InitializeProjectTicketMetadata
{
public function handle(Project $project): void
{
$project->ticketTypes()->firstOrCreate(
['system_key' => 'task'],
[
'is_builtin' => true,
'name' => 'Task',
'position' => 1,
],
);
$project->ticketTypes()->firstOrCreate(
['system_key' => 'parent'],
[
'is_builtin' => true,
'name' => 'Parent',
'position' => 2,
],
);
$project->ticketTypes()
->whereIn('system_key', TicketType::BUILTIN_KEYS)
->orderBy('position')
->get()
->values()
->each(function (TicketType $ticketType, int $index): void {
$ticketType->forceFill([
'is_builtin' => true,
'position' => $index + 1,
])->saveQuietly();
});
}
}