code: public static function toModel(stdClass $object)
      {
          if (null === static::MODEL) {
              throw new LogicException('Model class is not defined.');
          }
  
          $class = static::MODEL;
          $model = new $class;
  
          foreach (static::$map as $local => $remote) {
              if (is_int($local)) {
                  $local = $remote;
              }
  
              if (property_exists($object, $remote)) {
                  switch ($local) {
                      case 'createdAt':
                      case 'updatedAt':
                          $model->{'set'.ucfirst($local)}(new DateTime($object->$remote));
                          break;
  
                      case 'data':
                          $model->{'set'.ucfirst($local)}((array) $object->$remote);
                          break;
  
                      default:
                          $model->{'set'.ucfirst($local)}($object->$remote);
                  }
              }
          }
  
          return $model;
      }
docs: Cast object to model
  
  @param \stdClass $object
  @return \Ds\Component\Api\Model\Model
  @throws \LogicException