I totally forgot about go-playground/validator, which can validate any struct (So it can be applied to a struct representing a GORM entity as well).