type = $type; $this->title = $title; $this->description = $description; $this->minimum = $minimum; $this->maximum = $maximum; $this->default = $default; } /** * Creates an instance from an array. * * @param array{ * type: 'number'|'integer', * title?: string|null, * description?: string|null, * minimum?: float|null, * maximum?: float|null, * default?: float|null * } $data * @phpstan-param array $data * @return self */ public static function fromArray(array $data): self { self::assertRequired($data, ['type']); /** @var 'number'|'integer' $type */ $type = self::asString($data['type']); return new self( $type, self::asStringOrNull($data['title'] ?? null), self::asStringOrNull($data['description'] ?? null), self::asFloatOrNull($data['minimum'] ?? null), self::asFloatOrNull($data['maximum'] ?? null), self::asFloatOrNull($data['default'] ?? null) ); } /** * Converts the instance to an array. * * @return array */ public function toArray(): array { $result = []; $result['type'] = $this->type; if ($this->title !== null) { $result['title'] = $this->title; } if ($this->description !== null) { $result['description'] = $this->description; } if ($this->minimum !== null) { $result['minimum'] = $this->minimum; } if ($this->maximum !== null) { $result['maximum'] = $this->maximum; } if ($this->default !== null) { $result['default'] = $this->default; } return $result; } /** * @return 'number'|'integer' */ public function getType(): string { return $this->type; } /** * @return string|null */ public function getTitle(): ?string { return $this->title; } /** * @return string|null */ public function getDescription(): ?string { return $this->description; } /** * @return float|null */ public function getMinimum(): ?float { return $this->minimum; } /** * @return float|null */ public function getMaximum(): ?float { return $this->maximum; } /** * @return float|null */ public function getDefault(): ?float { return $this->default; } }