code: func IsZeroInFields(s interface{}, names ...string) (string, bool) {
  	if s == nil || len(names) == 0 {
  		return "", true
  	}
  
  	sv, err := structValue(s)
  	if err != nil {
  		return "", false
  	}
  
  	for _, name := range names {
  		fv := sv.FieldByName(name)
  
  		// if given field is not exists then continue
  		if !fv.IsValid() {
  			continue
  		}
  
  		if isFieldZero(fv) {
  			return name, true
  		}
  	}
  
  	return "", false
  }
docs: // IsZeroInFields method verifies the value for the given list of field names against
  // given struct. Method returns `Field Name` and `true` for the zero value field.
  // Otherwise method returns empty `string` and `false`.
  //
  // Note:
  // [1] This method doesn't traverse nested and embedded `struct`, instead it just evaluates that `struct`.
  // [2] If given field is not exists in the struct, method moves on to next field
  //
  // A "model" tag with the value of "-" is ignored by library for processing.
  // 		Example:
  //
  // 		// Field is ignored by go-model processing
  // 		BookCount	int	`model:"-"`
  // 		BookCode	string	`model:"-"`
  //