22 lines
576 B
Go
22 lines
576 B
Go
package domain
|
|
|
|
import (
|
|
"github.com/go-playground/validator/v10"
|
|
"time"
|
|
)
|
|
|
|
var V = validator.New(validator.WithRequiredStructEnabled())
|
|
|
|
func init() {
|
|
_ = V.RegisterValidation("date_of_birth", dateOfBirthValidation)
|
|
}
|
|
|
|
func dateOfBirthValidation(fl validator.FieldLevel) bool {
|
|
cd, _ := fl.Field().Interface().(CustomDate)
|
|
|
|
if cd.Time.Before(time.Date(1924, time.January, 1, 0, 0, 0, 0, time.UTC)) || cd.Time.After(time.Now().AddDate(-16, 0, 0)) {
|
|
return false // дата рождения после 01.01.1924 и юзеру больше 16 лет
|
|
}
|
|
|
|
return true
|
|
}
|