validate([ 'description' => ['nullable', 'string'], 'ticket_id' => ['required', 'integer'], ]); $user = $this->kanbanGitMcp->user($request); $ticket = $this->kanbanGitMcp->ticketForWrite($user, (int) $validated['ticket_id']); $payload = [ ...$this->kanbanGitMcp->updatePayload($ticket), 'description' => $validated['description'] ?? null, ]; $wasUpdated = $this->updateProjectTicket->handle($ticket, $user, $payload); return Response::structured([ 'data' => $this->kanbanGitMcp->ticketPayload($ticket->fresh()), 'meta' => [ 'message' => $wasUpdated ? "{$ticket->ticket_key} description was updated." : 'No ticket changes were detected.', ], ]); } /** * @return array */ public function schema(JsonSchema $schema): array { return [ 'description' => $schema->string() ->nullable() ->description('New ticket description. Pass null to clear it.'), 'ticket_id' => $schema->integer() ->description('Ticket ID.') ->required(), ]; } }