func ManagementModelRequestStructureValidation(sl validator.StructLevel) {
	request := sl.Current().Interface().(ManagementModelRequest)
	if len(request.SignalOrder) > 1 && !utils.StringInSlice(request.Concatenator, concatenatorList) {
		sl.ReportError(request.Concatenator, "concatenator", "", "wrongConcatenator", "")
	} else if len(request.SignalOrder) == 1 && len(request.Concatenator) > 0 {
		sl.ReportError(request.Concatenator, "concatenator", "", "noConcatenatorNeeded", "")
	}
}
ManagementModelRequestStructureValidation validates structure and content
package internal
import (
	"errors"
	"net/http"
	"strings"
	"github.com/rtlnl/phoenix/models"
	"github.com/gin-gonic/gin"
	"gopkg.in/go-playground/validator.v9"
	"github.com/rtlnl/phoenix/pkg/db"
	"github.com/rtlnl/phoenix/utils"
)
type ManagementModelRequest struct {
	Name         string   `json:"name" description:"name of the model" binding:"required"`
	SignalOrder  []string `json:"signalOrder" description:"list of ordered signals" binding:"required"`
	Concatenator string   `json:"concatenator" description:"character used as concatenator for SignalOrder {'|', '#', '_', '-'}"`
}
type ManagementModelResponse struct {
	Model   models.Model `json:"model" description:"model object that is being returned to the client"`
	Message string       `json:"message" description:"summary of the action just taken"`
}
var (
	concatenatorList = []string{"|", "#", "_", "-"}
	validate         *validator.Validate
)