diff --git a/src/TgBotLib/Objects/ShippingOption.php b/src/TgBotLib/Objects/ShippingOption.php new file mode 100644 index 0000000..78d5700 --- /dev/null +++ b/src/TgBotLib/Objects/ShippingOption.php @@ -0,0 +1,89 @@ +id; + } + + /** + * Option title + * + * @return string + */ + public function getTitle(): string + { + return $this->title; + } + + /** + * List of price portions + * + * @return LabeledPrice[] + */ + public function getPrices(): array + { + return $this->prices; + } + + /** + * Returns an array representation of the object + * + * @return array + */ + public function toArray(): array + { + return [ + 'id' => $this->id, + 'title' => $this->title, + 'prices' => array_map(function (LabeledPrice $price) { + return $price->toArray(); + }, $this->prices) + ]; + } + + /** + * Constructs object from an array representation + * + * @param array $data + * @return ObjectTypeInterface + */ + public static function fromArray(array $data): ObjectTypeInterface + { + $object = new self(); + $object->id = $data['id']; + $object->title = $data['title']; + $object->prices = array_map(function (array $price) { + return LabeledPrice::fromArray($price); + }, $data['prices']); + + return $object; + } + } \ No newline at end of file