setLocationId(new Id($data['locationId'])); } if (!empty($data['googleCalendar']) && isset($data['googleCalendar']['token'])) { $user->setGoogleCalendar(GoogleCalendarFactory::create($data['googleCalendar'])); } if (!empty($data['id'])) { $user->setId(new Id($data['id'])); } break; case 'manager': $user = new Manager( new Name($data['firstName']), new Name($data['lastName']), new Email($data['email']) ); break; case 'customer': default: $user = new Customer( new Name($data['firstName']), new Name($data['lastName']), new Email($data['email'] ?: null), new Description(!empty($data['note']) ? $data['note'] : null), new Phone($data['phone']), new Gender(!empty($data['gender']) ? strtolower($data['gender']) : null) ); break; } if (!empty($data['birthday']) && \DateTime::createFromFormat('Y-m-d', $data['birthday'])) { $user->setBirthday(new Birthday(\DateTime::createFromFormat('Y-m-d', $data['birthday']))); } if (!empty($data['id'])) { $user->setId(new Id($data['id'])); } if (!empty($data['externalId'])) { $user->setExternalId(new Id($data['externalId'])); } if (!empty($data['pictureFullPath']) && !empty($data['pictureThumbPath'])) { $user->setPicture(new Picture($data['pictureFullPath'], $data['pictureThumbPath'])); } if (!empty($data['status'])) { $user->setStatus(new Status($data['status'])); } return $user; } }