49 lines
1.8 KiB
PHP
49 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Actions\Tickets;
|
|
|
|
use App\Models\Ticket;
|
|
use Illuminate\Support\Arr;
|
|
|
|
class BuildProjectTicketUpdateAttributes
|
|
{
|
|
/**
|
|
* @param array<string, mixed> $validated
|
|
* @return array{
|
|
* acceptance_criteria: string|null,
|
|
* assignee_user_id: int|null,
|
|
* author_user_id: int|null,
|
|
* blocked_comment: string|null,
|
|
* description: string|null,
|
|
* is_blocked: bool,
|
|
* parent_ticket_id: int|null,
|
|
* story_points: int|null,
|
|
* ticket_priority_id: int,
|
|
* ticket_type_id: int,
|
|
* title: string
|
|
* }
|
|
*/
|
|
public function handle(Ticket $ticket, array $validated): array
|
|
{
|
|
return [
|
|
'acceptance_criteria' => Arr::get($validated, 'acceptance_criteria'),
|
|
'assignee_user_id' => Arr::exists($validated, 'assignee_user_id')
|
|
? Arr::get($validated, 'assignee_user_id')
|
|
: $ticket->assignee_user_id,
|
|
'author_user_id' => Arr::exists($validated, 'author_user_id')
|
|
? Arr::get($validated, 'author_user_id')
|
|
: $ticket->author_user_id,
|
|
'blocked_comment' => Arr::get($validated, 'blocked_comment'),
|
|
'description' => Arr::get($validated, 'description'),
|
|
'is_blocked' => Arr::get($validated, 'is_blocked', false),
|
|
'parent_ticket_id' => Arr::get($validated, 'parent_ticket_id'),
|
|
'story_points' => Arr::exists($validated, 'story_points')
|
|
? Arr::get($validated, 'story_points')
|
|
: $ticket->story_points,
|
|
'ticket_priority_id' => Arr::get($validated, 'ticket_priority_id'),
|
|
'ticket_type_id' => Arr::get($validated, 'ticket_type_id'),
|
|
'title' => Arr::get($validated, 'title'),
|
|
];
|
|
}
|
|
}
|