") */ public array $photoUrls; /** * @var Tag[]|null * @SerializedName("tags") * @Assert\All({ * @Assert\Type("\OpenAPIServer\Model\Tag") * }) * @Type("array<\OpenAPIServer\Model\Tag>") */ public ?array $tags; /** * @var PetStatus|null * @SerializedName("status") * @Accessor(getter="getSerializedStatus") * @Type("string") */ public ?PetStatus $status; /** * Constructor * * @param int|null $id * @param Category|null $category * @param string $name * @param string[] $photoUrls * @param Tag[]|null $tags * @param PetStatus|null $status */ public function __construct(?int $id, ?Category $category, string $name, array $photoUrls, ?array $tags, ?PetStatus $status) { $this->id = $id; $this->category = $category; $this->name = $name; $this->photoUrls = $photoUrls; $this->tags = $tags; $this->status = $status; } public static function fromArray(array $data): self { return new self( $data['id'] ?? null, isset($data['category']) ? Category::fromArray($data['category']) : null, $data['name'] ?? null, $data['photoUrls'] ?? null, isset($data['tags']) ? array_map(fn($item) => Tag::fromArray($item), $data['tags']) : null, isset($data['status']) ? PetStatus::tryFrom($data['status']) : null, ); } public function jsonSerialize(): mixed { return [ 'id' => $this->id, 'category' => $this->category, 'name' => $this->name, 'photoUrls' => $this->photoUrls, 'tags' => $this->tags, 'status' => $this->status, ]; } }