package validation import ( "GoMembership/internal/models" "GoMembership/internal/repositories" "github.com/go-playground/validator/v10" ) func validateMembership(sl validator.StructLevel, membership models.Membership) { if membership.SubscriptionModel.RequiredMembershipField != "" { switch membership.SubscriptionModel.RequiredMembershipField { case "ParentMembershipID": if membership.ParentMembershipID == 0 { sl.ReportError(membership.ParentMembershipID, membership.SubscriptionModel.RequiredMembershipField, "RequiredMembershipField", "required", "") } else { _, err := repositories.GetUserByID(&membership.ParentMembershipID) if err != nil { sl.ReportError(membership.ParentMembershipID, membership.SubscriptionModel.RequiredMembershipField, "RequiredMembershipField", "user_id_not_found", "") } } default: sl.ReportError(membership.ParentMembershipID, membership.SubscriptionModel.RequiredMembershipField, "RequiredMembershipField", "not_implemented", "") } } }