searchDocumentationNoResultsResponse.php•2.26 kB
<?php
declare(strict_types=1);
namespace OpenFGA\MCP\Responses;
use JsonSerializable;
use Override;
final readonly class searchDocumentationNoResultsResponse extends AbstractResponse implements JsonSerializable
{
/**
* @param string $query The search query that returned no results
* @param array<string> $availableSdks List of available SDKs to help user refine search
* @param string $status Status message indicating no results found
* @param string $suggestion Suggestion for the user to improve their search
*/
public function __construct(
private string $query,
private array $availableSdks,
private string $status = '❌ No results found',
private string $suggestion = 'Try broader search terms or check spelling',
) {
}
/**
* Create and serialize the no results response in one step.
*
* @param string $query
* @param array<string> $availableSdks
* @param string $status
* @param string $suggestion
* @return array{status: string, query: string, suggestion: string, available_sdks: array<string>}
*/
public static function create(
string $query,
array $availableSdks,
string $status = '❌ No results found',
string $suggestion = 'Try broader search terms or check spelling',
): array {
return (new self($query, $availableSdks, $status, $suggestion))->jsonSerialize();
}
/**
* Serialize the response to JSON format.
*
* @return array{status: string, query: string, suggestion: string, available_sdks: array<string>}
*/
#[Override]
public function jsonSerialize(): array
{
return [
'status' => $this->status,
'query' => $this->query,
'suggestion' => $this->suggestion,
'available_sdks' => $this->availableSdks,
];
}
}