NAPPDesafio/api/application/products/dto/product.dto.go
2024-07-21 00:15:14 -03:00

39 lines
944 B
Go

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
}