38 lines
1.1 KiB
PHP
38 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Actions\Projects;
|
|
|
|
use App\Http\Resources\BoardColumnResource;
|
|
use App\Http\Resources\ProjectResource;
|
|
use App\Http\Resources\TicketStatusResource;
|
|
use App\Models\Project;
|
|
|
|
class BuildProjectBoardSettingsPayload
|
|
{
|
|
/**
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function handle(Project $project, mixed $status = null): array
|
|
{
|
|
return [
|
|
'backlogTicketStatuses' => TicketStatusResource::collection(
|
|
$project->ticketStatuses()
|
|
->whereNull('board_column_id')
|
|
->get(),
|
|
)->resolve(),
|
|
'boardColumns' => BoardColumnResource::collection(
|
|
$project->boardColumns()
|
|
->with('ticketStatuses')
|
|
->get(),
|
|
)->resolve(),
|
|
'project' => ProjectResource::make($project)->resolve(),
|
|
'status' => $status,
|
|
'ticketStatuses' => TicketStatusResource::collection(
|
|
$project->ticketStatuses()
|
|
->with(['allowedTargetStatuses.boardColumn', 'boardColumn'])
|
|
->get(),
|
|
)->resolve(),
|
|
];
|
|
}
|
|
}
|