commercetools-sdk-php-v2  master
The platform, import-api and ml-api PHP sdks generated from our api reference.
DeliveryBuilder.php
1 <?php
2 
3 declare(strict_types=1);
10 
18 use DateTimeImmutable;
19 use stdClass;
20 
24 final class DeliveryBuilder implements Builder
25 {
30  private $id;
31 
36  private $createdAt;
37 
42  private $items;
43 
48  private $parcels;
49 
54  private $address;
55 
60  public function getId()
61  {
62  return $this->id;
63  }
64 
69  public function getCreatedAt()
70  {
71  return $this->createdAt;
72  }
73 
78  public function getItems()
79  {
80  return $this->items;
81  }
82 
87  public function getParcels()
88  {
89  return $this->parcels;
90  }
91 
96  public function getAddress()
97  {
98  return $this->address instanceof AddressBuilder ? $this->address->build() : $this->address;
99  }
100 
105  public function withId(?string $id)
106  {
107  $this->id = $id;
108 
109  return $this;
110  }
111 
116  public function withCreatedAt(?DateTimeImmutable $createdAt)
117  {
118  $this->createdAt = $createdAt;
119 
120  return $this;
121  }
122 
127  public function withItems(?DeliveryItemCollection $items)
128  {
129  $this->items = $items;
130 
131  return $this;
132  }
133 
138  public function withParcels(?ParcelCollection $parcels)
139  {
140  $this->parcels = $parcels;
141 
142  return $this;
143  }
144 
149  public function withAddress(?Address $address)
150  {
151  $this->address = $address;
152 
153  return $this;
154  }
155 
160  public function withAddressBuilder(?AddressBuilder $address)
161  {
162  $this->address = $address;
163 
164  return $this;
165  }
166 
167  public function build(): Delivery
168  {
169  return new DeliveryModel(
170  $this->id,
171  $this->createdAt,
172  $this->items,
173  $this->parcels,
174  $this->address instanceof AddressBuilder ? $this->address->build() : $this->address
175  );
176  }
177 
178  public static function of(): DeliveryBuilder
179  {
180  return new self();
181  }
182 }