, category_scores: array, flagged: bool}>}> */ final class CreateResponse implements Response { /** * @use ArrayAccessible, category_scores: array, flagged: bool}>}> */ use ArrayAccessible; /** * @param array $results */ private function __construct( public readonly string $id, public readonly string $model, public readonly array $results, ) { } /** * Acts as static factory, and returns a new Response instance. * * @param array{id: string, model: string, results: array, category_scores: array, flagged: bool}>} $attributes */ public static function from(array $attributes): self { $results = array_map(fn (array $result): CreateResponseResult => CreateResponseResult::from( $result ), $attributes['results']); return new self( $attributes['id'], $attributes['model'], $results, ); } /** * {@inheritDoc} */ public function toArray(): array { return [ 'id' => $this->id, 'model' => $this->model, 'results' => array_map( static fn (CreateResponseResult $result): array => $result->toArray(), $this->results, ), ]; } }