43 lines
1.1 KiB
PHP
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();
|
|
});
|
|
}
|
|
}
|