package validation import ( "bitbucket.org/nemt/nemt-portal-api/application/viewmodel" "bitbucket.org/nemt/nemt-portal-api/infra/errors" ) func ValidateVisit(visit *viewmodel.Visit, user *viewmodel.User) []errors.ValidationError { var result []errors.ValidationError if len(visit.User.First) == 0 { result = append(result, errors.ValidationError{Field: "first", Message: "Step #1 - First Name is mandatory"}) } if len(visit.User.Last) == 0 { result = append(result, errors.ValidationError{Field: "last", Message: "Step #1 - Last Name is mandatory"}) } if visit.User.Gender == nil || (*visit.User.Gender != "M" && *visit.User.Gender != "F" && *visit.User.Gender != "U") { result = append(result, errors.ValidationError{Field: "gender", Message: "Step #1 - Gender is mandatory"}) } if visit.User.Type == nil || (*visit.User.Type != "S" && *visit.User.Gender != "D" && *visit.User.Gender != "U") { result = append(result, errors.ValidationError{Field: "type", Message: "Step #1 - Member Type is mandatory"}) } if visit.User.Member == nil || len(*visit.User.Member) == 0 { result = append(result, errors.ValidationError{Field: "member", Message: "Step #1 - Member # is mandatory"}) } if visit.User.BirthDate == nil || visit.User.BirthDate.IsZero() { result = append(result, errors.ValidationError{Field: "birthdate", Message: "Step #1 - Birth Date is mandatory"}) } return result }