Implement ticket types priorities and custom fields

This commit is contained in:
2026-03-25 01:28:25 +01:00
parent 3f9b83ec16
commit 35aacff318
32 changed files with 1832 additions and 1 deletions
@@ -0,0 +1,55 @@
<?php
namespace Database\Seeders;
use App\Actions\ProjectTicketMetadata\InitializeProjectTicketMetadata;
use App\Models\Project;
use App\Models\TicketFieldDefinition;
use App\Models\TicketPriority;
use App\Models\TicketType;
use Illuminate\Database\Seeder;
class ProjectTicketMetadataSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$initializeProjectTicketMetadata = app(InitializeProjectTicketMetadata::class);
Project::query()
->orderBy('id')
->get()
->each(function (Project $project) use ($initializeProjectTicketMetadata): void {
$initializeProjectTicketMetadata->handle($project);
TicketType::factory()
->for($project)
->create([
'name' => 'Bug',
'position' => 3,
'system_key' => null,
]);
TicketPriority::factory()
->count(3)
->sequence(
['name' => 'Low', 'position' => 1],
['name' => 'Medium', 'position' => 2],
['name' => 'High', 'position' => 3],
)
->for($project)
->create();
TicketFieldDefinition::factory()
->count(2)
->sequence(
['label' => 'Assignee', 'field_type' => 'user', 'position' => 1],
['label' => 'Story Points', 'field_type' => 'number', 'position' => 2],
)
->for($project)
->create();
});
}
}