setId(new Id($data['id'])); } if (isset($data['price'])) { $customerBooking->setPrice(new Price($data['price'])); } if (isset($data['appointmentId'])) { $customerBooking->setAppointmentId(new Id($data['appointmentId'])); } if (isset($data['couponId'])) { $customerBooking->setCouponId(new Id($data['couponId'])); } if (isset($data['coupon'])) { $customerBooking->setCoupon(CouponFactory::create($data['coupon'])); } if (isset($data['customer'])) { $customerBooking->setCustomer(UserFactory::create($data['customer'])); } if (isset($data['customFields'])) { $customerBooking->setCustomFields(new Json($data['customFields'])); } if (isset($data['info'])) { $customerBooking->setInfo(new Json($data['info'])); } if (isset($data['utcOffset'])) { $customerBooking->setUtcOffset(new IntegerValue($data['utcOffset'])); } $payments = new Collection(); if (isset($data['payments'])) { foreach ((array)$data['payments'] as $key => $value) { $payments->addItem( PaymentFactory::create($value), $key ); } } $customerBooking->setPayments($payments); $extras = new Collection(); if (isset($data['extras'])) { foreach ((array)$data['extras'] as $key => $value) { $extras->addItem( CustomerBookingExtraFactory::create($value), $key ); } } $customerBooking->setExtras($extras); if (isset($data['token'])) { $customerBooking->setToken(new Token($data['token'])); } return $customerBooking; } }