Files
KanbanGit/app/Actions/Projects/BuildProjectBacklogPageProps.php
T
2026-04-15 09:56:53 +02:00

50 lines
1.5 KiB
PHP

<?php
namespace App\Actions\Projects;
use App\Models\Project;
use App\Models\Ticket;
use App\Models\User;
class BuildProjectBacklogPageProps
{
/**
* @return array<string, mixed>
*/
public function handle(
Project $project,
bool $canEditTickets,
bool $canCreateTickets,
?string $status,
): array {
return [
'backlogTicketStatuses' => $project->ticketStatuses()
->whereNull('board_column_id')
->get(),
'canCreateTickets' => $canCreateTickets,
'canEditTickets' => $canEditTickets,
'project' => $project,
'status' => $status,
'ticketStatusOptions' => $project->ticketStatuses()
->with('boardColumn')
->get(),
'ticketPriorities' => $project->ticketPriorities()->get(),
'ticketTypes' => $project->ticketTypes()->get(),
'tickets' => Ticket::query()
->with([
'ticketPriority',
'ticketStatus.allowedTargetStatuses.boardColumn',
'ticketStatus.boardColumn',
'ticketType',
])
->where('project_id', $project->id)
->whereHas('ticketStatus', fn ($query) => $query->whereNull('board_column_id'))
->orderByDesc('sequence_number')
->get(),
'users' => User::query()
->orderBy('name')
->get(),
];
}
}