code: func deleteDeviceService(ds models.DeviceService, w http.ResponseWriter, ctx context.Context) error {
  	// Delete the associated devices
  	devices, err := dbClient.GetDevicesByServiceId(ds.Id)
  	if err != nil {
  		http.Error(w, err.Error(), http.StatusServiceUnavailable)
  		return err
  	}
  	for _, device := range devices {
  		if err = deleteDevice(device, w, ctx); err != nil {
  			return err
  		}
  	}
  
  	// Delete the associated provision watchers
  	watchers, err := dbClient.GetProvisionWatchersByServiceId(ds.Id)
  	if err != nil {
  		http.Error(w, err.Error(), http.StatusServiceUnavailable)
  		return err
  	}
  	for _, watcher := range watchers {
  		if err = deleteProvisionWatcher(watcher, w); err != nil {
  			return err
  		}
  	}
  
  	// Delete the device service
  	if err = dbClient.DeleteDeviceServiceById(ds.Id); err != nil {
  		http.Error(w, err.Error(), http.StatusServiceUnavailable)
  		return err
  	}
  
  	return nil
  }
docs: // Delete the device service
  // Delete the associated devices
  // Delete the associated provision watchers