package productdto import ( "api/libs/logger" "errors" "github.com/go-playground/validator/v10" ) type ProductDto struct { Nome string `json:"nome" validate:"required"` Codigo string `json:"codigo" validate:"required"` EstoqueTotal int64 `json:"estoqueTotal" validate:"required"` EstoqueCorte int64 `json:"estoqueCorte" validate:"required"` PrecoDe float32 `json:"precoDe" validate:"required"` PrecoPor float32 `json:"precoPor" validate:"required"` } func (d *ProductDto) Validate() error { validate := validator.New() err := validate.Struct(d) if err != nil { if _, ok := err.(*validator.InvalidValidationError); ok { logger.Development.Info(err.Error()) } for _, e := range err.(validator.ValidationErrors) { err = errors.New(e.Field() + " " + e.Tag()) } } if d.PrecoPor > d.PrecoDe { err = errors.New(`o "preço de" não pode ser inferior ao "preço por"`) } return err }