33 lines
1.3 KiB
PHP
33 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Actions\Projects;
|
|
|
|
use App\Http\Resources\FieldTypeOptionResource;
|
|
use App\Http\Resources\ProjectResource;
|
|
use App\Http\Resources\TicketFieldDefinitionResource;
|
|
use App\Http\Resources\TicketLinkTypeResource;
|
|
use App\Http\Resources\TicketPriorityResource;
|
|
use App\Http\Resources\TicketTypeResource;
|
|
use App\Models\Project;
|
|
use App\Models\TicketFieldDefinition;
|
|
|
|
class BuildProjectTicketMetadataSettingsPayload
|
|
{
|
|
/**
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function handle(Project $project, mixed $status = null, mixed $error = null): array
|
|
{
|
|
return [
|
|
'fieldTypeOptions' => FieldTypeOptionResource::collection(collect(TicketFieldDefinition::FIELD_TYPES))->resolve(),
|
|
'project' => ProjectResource::make($project)->resolve(),
|
|
'error' => $error,
|
|
'status' => $status,
|
|
'ticketFieldDefinitions' => TicketFieldDefinitionResource::collection($project->ticketFieldDefinitions()->get())->resolve(),
|
|
'ticketLinkTypes' => TicketLinkTypeResource::collection($project->ticketLinkTypes()->get())->resolve(),
|
|
'ticketPriorities' => TicketPriorityResource::collection($project->ticketPriorities()->get())->resolve(),
|
|
'ticketTypes' => TicketTypeResource::collection($project->ticketTypes()->withCount('tickets')->get())->resolve(),
|
|
];
|
|
}
|
|
}
|