package com.l7tech.external.assertions.gatewaygraphql.server.data;

import com.fasterxml.jackson.annotation.JsonIncludeProperties;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.l7tech.external.assertions.gatewaygraphql.server.input.BundleEntityMappingInput;
import com.l7tech.external.assertions.gatewaygraphql.server.input.EntityInput;
import com.l7tech.identity.IdentityProviderPasswordPolicy;
import java.util.List;
import java.util.logging.Logger;
import lombok.Generated;

public class PasswordPolicyDTO extends EntityDTO<IdentityProviderPasswordPolicy> {
   @Generated
   private static final Logger a = Logger.getLogger(PasswordPolicyDTO.class.getName());

   public PasswordPolicyDTO(IdentityProviderPasswordPolicy var1) {
      super(var1);
   }

   public Boolean isForcePasswordChangeNewUser() {
      return this.entity.getBooleanProperty(IdentityProviderPasswordPolicy.FORCE_PWD_CHANGE);
   }

   public Boolean isNoRepeatingCharacters() {
      return this.entity.getBooleanProperty(IdentityProviderPasswordPolicy.NO_REPEAT_CHARS);
   }

   public int getMinPasswordLength() {
      return this.entity.getIntegerProperty(IdentityProviderPasswordPolicy.MIN_PASSWORD_LENGTH);
   }

   public int getMaxPasswordLength() {
      return this.entity.getIntegerProperty(IdentityProviderPasswordPolicy.MAX_PASSWORD_LENGTH);
   }

   public int getUpperMinimum() {
      return this.entity.getIntegerProperty(IdentityProviderPasswordPolicy.UPPER_MIN);
   }

   public int getLowerMinimum() {
      return this.entity.getIntegerProperty(IdentityProviderPasswordPolicy.LOWER_MIN);
   }

   public int getNumberMinimum() {
      return this.entity.getIntegerProperty(IdentityProviderPasswordPolicy.NUMBER_MIN);
   }

   public int getSymbolMinimum() {
      return this.entity.getIntegerProperty(IdentityProviderPasswordPolicy.SYMBOL_MIN);
   }

   public int getNonNumericMinimum() {
      return this.entity.getIntegerProperty(IdentityProviderPasswordPolicy.NON_NUMERIC_MIN);
   }

   public int getCharDiffMinimum() {
      return this.entity.getIntegerProperty(IdentityProviderPasswordPolicy.CHARACTER_DIFF_MIN);
   }

   public int getRepeatFrequency() {
      return this.entity.getIntegerProperty(IdentityProviderPasswordPolicy.REPEAT_FREQUENCY);
   }

   public int getPasswordExpiry() {
      return this.entity.getIntegerProperty(IdentityProviderPasswordPolicy.PASSWORD_EXPIRY);
   }

   public Boolean isAllowableChangesPerDay() {
      return this.entity.getBooleanProperty(IdentityProviderPasswordPolicy.ALLOWABLE_CHANGES);
   }

   @Override
   protected Object createWrapperObject() {
      return new PasswordPolicyDTO.PasswordPolicyWrapper(this.entity);
   }

   public static class PasswordPoliciesPayLoad extends EntityMutationsPayload<PasswordPolicyDTO> {
      public List<PasswordPolicyDTO> getPasswordPolicies() {
         return super.getItems();
      }
   }

   public static class PasswordPolicyInput extends EntityInput {
      private Boolean g;
      private Boolean h;
      private int i;
      private int j;
      private int k;
      private int l;
      private int m;
      private int n;
      private int o;
      private int p;
      private int q;
      private int r;
      private Boolean s;
      private String t;
      private static final String[] u;

      @Override
      public String getIdentityValue() {
         return this.getGoid();
      }

      @Override
      public boolean matches(EntityMappingInstruction var1) {
         return true;
      }

      @Generated
      public Boolean getForcePasswordChangeNewUser() {
         return this.g;
      }

      @Generated
      public Boolean getNoRepeatingCharacters() {
         return this.h;
      }

      @Generated
      public int getMinPasswordLength() {
         return this.i;
      }

      @Generated
      public int getMaxPasswordLength() {
         return this.j;
      }

      @Generated
      public int getUpperMinimum() {
         return this.k;
      }

      @Generated
      public int getLowerMinimum() {
         return this.l;
      }

      @Generated
      public int getNumberMinimum() {
         return this.m;
      }

      @Generated
      public int getSymbolMinimum() {
         return this.n;
      }

      @Generated
      public int getNonNumericMinimum() {
         return this.o;
      }

      @Generated
      public int getCharDiffMinimum() {
         return this.p;
      }

      @Generated
      public int getRepeatFrequency() {
         return this.q;
      }

      @Generated
      public int getPasswordExpiry() {
         return this.r;
      }

      @Generated
      public Boolean getAllowableChangesPerDay() {
         return this.s;
      }

      @Generated
      public String getChecksum() {
         return this.t;
      }

      @Generated
      public void setForcePasswordChangeNewUser(Boolean var1) {
         this.g = var1;
      }

      @Generated
      public void setNoRepeatingCharacters(Boolean var1) {
         this.h = var1;
      }

      @Generated
      public void setMinPasswordLength(int var1) {
         this.i = var1;
      }

      @Generated
      public void setMaxPasswordLength(int var1) {
         this.j = var1;
      }

      @Generated
      public void setUpperMinimum(int var1) {
         this.k = var1;
      }

      @Generated
      public void setLowerMinimum(int var1) {
         this.l = var1;
      }

      @Generated
      public void setNumberMinimum(int var1) {
         this.m = var1;
      }

      @Generated
      public void setSymbolMinimum(int var1) {
         this.n = var1;
      }

      @Generated
      public void setNonNumericMinimum(int var1) {
         this.o = var1;
      }

      @Generated
      public void setCharDiffMinimum(int var1) {
         this.p = var1;
      }

      @Generated
      public void setRepeatFrequency(int var1) {
         this.q = var1;
      }

      @Generated
      public void setPasswordExpiry(int var1) {
         this.r = var1;
      }

      @Generated
      public void setAllowableChangesPerDay(Boolean var1) {
         this.s = var1;
      }

      @Generated
      public void setChecksum(String var1) {
         this.t = var1;
      }

      @Generated
      @Override
      public String toString() {
         Boolean var10000 = this.getForcePasswordChangeNewUser();
         Boolean var10001 = this.getNoRepeatingCharacters();
         int var10002 = this.getMinPasswordLength();
         int var10003 = this.getMaxPasswordLength();
         int var10004 = this.getUpperMinimum();
         int var10005 = this.getLowerMinimum();
         int var10006 = this.getNumberMinimum();
         int var10007 = this.getSymbolMinimum();
         int var10008 = this.getNonNumericMinimum();
         int var10009 = this.getCharDiffMinimum();
         int var10010 = this.getRepeatFrequency();
         int var10011 = this.getPasswordExpiry();
         String var1 = this.getChecksum();
         Boolean var2 = this.getAllowableChangesPerDay();
         int var3 = var10011;
         int var4 = var10010;
         int var5 = var10009;
         int var6 = var10008;
         int var7 = var10007;
         int var8 = var10006;
         int var9 = var10005;
         int var10 = var10004;
         int var11 = var10003;
         int var12 = var10002;
         Boolean var13 = var10001;
         Boolean var14 = var10000;
         String[] var15 = u;
         return var15[4]
            + var14
            + var15[9]
            + var13
            + var15[1]
            + var12
            + var15[0]
            + var11
            + var15[12]
            + var10
            + var15[2]
            + var9
            + var15[3]
            + var8
            + var15[6]
            + var7
            + var15[13]
            + var6
            + var15[11]
            + var5
            + var15[5]
            + var4
            + var15[7]
            + var3
            + var15[10]
            + var2
            + var15[8]
            + var1
            + ")";
      }

      @Generated
      @Override
      public boolean equals(Object var1) {
         if (var1 == this) {
            return true;
         } else if (!(var1 instanceof PasswordPolicyDTO.PasswordPolicyInput var2)) {
            return false;
         } else {
            if (!var2.canEqual(this)) {
               return false;
            }

            if (!super.equals(var1)) {
               return false;
            }

            if (this.getMinPasswordLength() != var2.getMinPasswordLength()) {
               return false;
            }

            if (this.getMaxPasswordLength() != var2.getMaxPasswordLength()) {
               return false;
            }

            if (this.getUpperMinimum() != var2.getUpperMinimum()) {
               return false;
            }

            if (this.getLowerMinimum() != var2.getLowerMinimum()) {
               return false;
            }

            if (this.getNumberMinimum() != var2.getNumberMinimum()) {
               return false;
            }

            if (this.getSymbolMinimum() != var2.getSymbolMinimum()) {
               return false;
            }

            if (this.getNonNumericMinimum() != var2.getNonNumericMinimum()) {
               return false;
            }

            if (this.getCharDiffMinimum() != var2.getCharDiffMinimum()) {
               return false;
            }

            if (this.getRepeatFrequency() != var2.getRepeatFrequency()) {
               return false;
            }

            if (this.getPasswordExpiry() != var2.getPasswordExpiry()) {
               return false;
            }

            Boolean var3 = this.getForcePasswordChangeNewUser();
            Boolean var4 = var2.getForcePasswordChangeNewUser();
            if (var3 == null ? var4 == null : var3.equals(var4)) {
               Boolean var5 = this.getNoRepeatingCharacters();
               Boolean var6 = var2.getNoRepeatingCharacters();
               if (var5 == null ? var6 == null : var5.equals(var6)) {
                  Boolean var7 = this.getAllowableChangesPerDay();
                  Boolean var8 = var2.getAllowableChangesPerDay();
                  if (var7 == null ? var8 == null : var7.equals(var8)) {
                     String var9 = this.getChecksum();
                     String var10 = var2.getChecksum();
                     return var9 == null ? var10 == null : var9.equals(var10);
                  } else {
                     return false;
                  }
               } else {
                  return false;
               }
            } else {
               return false;
            }
         }
      }

      @Generated
      @Override
      protected boolean canEqual(Object var1) {
         return var1 instanceof PasswordPolicyDTO.PasswordPolicyInput;
      }

      @Generated
      @Override
      public int hashCode() {
         byte var1 = 59;
         int var2 = super.hashCode();
         var2 = var2 * 59 + this.getMinPasswordLength();
         var2 = var2 * 59 + this.getMaxPasswordLength();
         var2 = var2 * 59 + this.getUpperMinimum();
         var2 = var2 * 59 + this.getLowerMinimum();
         var2 = var2 * 59 + this.getNumberMinimum();
         var2 = var2 * 59 + this.getSymbolMinimum();
         var2 = var2 * 59 + this.getNonNumericMinimum();
         var2 = var2 * 59 + this.getCharDiffMinimum();
         var2 = var2 * 59 + this.getRepeatFrequency();
         var2 = var2 * 59 + this.getPasswordExpiry();
         Boolean var3 = this.getForcePasswordChangeNewUser();
         var2 = var2 * 59 + (var3 == null ? 43 : var3.hashCode());
         Boolean var4 = this.getNoRepeatingCharacters();
         var2 = var2 * 59 + (var4 == null ? 43 : var4.hashCode());
         Boolean var5 = this.getAllowableChangesPerDay();
         var2 = var2 * 59 + (var5 == null ? 43 : var5.hashCode());
         String var6 = this.getChecksum();
         return var2 * 59 + (var6 == null ? 43 : var6.hashCode());
      }

      static {
         String[] var5 = new String[14];
         int var3 = 0;
         String var2 = "AwL_K\u001cD\u001e$VQA(i\b9FJ[q\u0014AwLW]\u001cD\u001e$VQA(i\b9FJ[q\u000fAwMQD)W >OW^9HP\u0010AwOK^.@\u001f\u001aHPZ!P\u0000jA=6RMD#W\t\u0007NRZ/\\)\u0003n\u0010c-V\u001e NLW\u001cJ\u0001>BGz\"U\u0018#\tX\\>F\b\u0007@M@;J\u001f3bVR\"B\b\u0019DIf?@\u001fj\u0012AwS[C)D\u0019\u0011S[B9@\u00034X\u0003\u0010AwRG^.J\u0001\u001aHPZ!P\u0000j\u0011AwQ_@?R\u0002%E{K<L\u001f.\u001c\u000bAwBVV/N\u001e\"L\u0003\u0018AwOQa)U\b6UW]+f\u00056S_P8@\u001f$\u001c\u0019Aw@R_#R\f5M[p$D\u00030DMc)W)6X\u0003\u0012AwBVR>a\u00041GsZ\"L\u0000\"L\u0003";
         int var4 = "AwL_K\u001cD\u001e$VQA(i\b9FJ[q\u0014AwLW]\u001cD\u001e$VQA(i\b9FJ[q\u000fAwMQD)W >OW^9HP\u0010AwOK^.@\u001f\u001aHPZ!P\u0000jA=6RMD#W\t\u0007NRZ/\\)\u0003n\u0010c-V\u001e NLW\u001cJ\u0001>BGz\"U\u0018#\tX\\>F\b\u0007@M@;J\u001f3bVR\"B\b\u0019DIf?@\u001fj\u0012AwS[C)D\u0019\u0011S[B9@\u00034X\u0003\u0010AwRG^.J\u0001\u001aHPZ!P\u0000j\u0011AwQ_@?R\u0002%E{K<L\u001f.\u001c\u000bAwBVV/N\u001e\"L\u0003\u0018AwOQa)U\b6UW]+f\u00056S_P8@\u001f$\u001c\u0019Aw@R_#R\f5M[p$D\u00030DMc)W)6X\u0003\u0012AwBVR>a\u00041GsZ\"L\u0000\"L\u0003"
            .length();
         char var1 = 20;
         int var7 = -1;

         label24:
         while (true) {
            byte var10000 = 28;
            String var10001 = var2.substring(++var7, var7 + var1);
            byte var10002 = -1;

            while (true) {
               String var8 = b(var10000, b(var10001));
               switch (var10002) {
                  case 0:
                     var5[var3++] = var8;
                     if ((var7 += var1) >= var4) {
                        u = var5;
                        return;
                     }

                     var1 = var2.charAt(var7);
                     break;
                  default:
                     var5[var3++] = var8;
                     if ((var7 += var1) < var4) {
                        var1 = var2.charAt(var7);
                        continue label24;
                     }

                     var2 = "_iJP]7I> QI@'VN\u0014_iQOC\u001cN\u001e,MIN\u001fR\u001d RU@o";
                     var4 = "_iJP]7I> QI@'VN\u0014_iQOC\u001cN\u001e,MIN\u001fR\u001d RU@o".length();
                     var1 = 15;
                     var7 = -1;
               }

               var10000 = 2;
               var10001 = var2.substring(++var7, var7 + var1);
               var10002 = 0;
            }
         }
      }

      private static char[] b(String var0) {
         char[] var10000 = var0.toCharArray();
         if (var10000.length < 2) {
            var10000[0] = (char)(var10000[0] ^ 57);
         }

         return var10000;
      }

      private static String b(int var0, char[] var1) {
         int var10003 = var1.length;
         int var10002 = var0;
         char[] var10001 = var1;
         int var10000 = var10003;

         for (int var2 = 0; var10000 > var2; var2++) {
            var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
               case 0 -> 113;
               case 1 -> 75;
               case 2 -> 61;
               case 3 -> 34;
               case 4 -> 47;
               case 5 -> 80;
               default -> 57;
            });
         }

         return new String(var10001).intern();
      }
   }

   public static class PasswordPolicyMappingInstructionInput extends BundleEntityMappingInput {
      private PasswordPolicyDTO.PasswordPolicyRefInput f;
      private static final String h;

      @Generated
      public PasswordPolicyDTO.PasswordPolicyRefInput getSource() {
         return this.f;
      }

      @Generated
      public void setSource(PasswordPolicyDTO.PasswordPolicyRefInput var1) {
         this.f = var1;
      }

      @Generated
      @Override
      public String toString() {
         return h + this.getSource() + ")";
      }

      @Generated
      @Override
      public boolean equals(Object var1) {
         if (var1 == this) {
            return true;
         } else if (!(var1 instanceof PasswordPolicyDTO.PasswordPolicyMappingInstructionInput var2)) {
            return false;
         } else {
            if (!var2.canEqual(this)) {
               return false;
            }

            PasswordPolicyDTO.PasswordPolicyRefInput var3 = this.getSource();
            PasswordPolicyDTO.PasswordPolicyRefInput var4 = var2.getSource();
            return var3 == null ? var4 == null : var3.equals(var4);
         }
      }

      @Generated
      @Override
      protected boolean canEqual(Object var1) {
         return var1 instanceof PasswordPolicyDTO.PasswordPolicyMappingInstructionInput;
      }

      @Generated
      @Override
      public int hashCode() {
         byte var1 = 59;
         byte var2 = 1;
         PasswordPolicyDTO.PasswordPolicyRefInput var3 = this.getSource();
         return var2 * 59 + (var3 == null ? 43 : var3.hashCode());
      }

      static {
         String var10002 = b(123, b("o\bI3OLS[9U,Q@X{=unhBRL\u001eU2\\sNS\u0000Y9uBQO\u0000T'qMRK\u001bO#LJNQ T0MW\tL\u0006O2[F\u001c"));
         byte var10001 = -1;
         h = var10002;
      }

      private static char[] b(String var0) {
         char[] var10000 = var0.toCharArray();
         if (var10000.length < 2) {
            var10000[0] = (char)(var10000[0] ^ 90);
         }

         return var10000;
      }

      private static String b(int var0, char[] var1) {
         int var10003 = var1.length;
         int var10002 = var0;
         char[] var10001 = var1;
         int var10000 = var10003;

         for (int var2 = 0; var10000 > var2; var2++) {
            var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
               case 0 -> 68;
               case 1 -> 18;
               case 2 -> 65;
               case 3 -> 59;
               case 4 -> 67;
               case 5 -> 88;
               default -> 90;
            });
         }

         return new String(var10001).intern();
      }
   }

   public static class PasswordPolicyRefInput {
      private String a;
      private static final String b;

      @Generated
      public String getGoid() {
         return this.a;
      }

      @Generated
      public void setGoid(String var1) {
         this.a = var1;
      }

      @Generated
      @Override
      public boolean equals(Object var1) {
         if (var1 == this) {
            return true;
         } else if (!(var1 instanceof PasswordPolicyDTO.PasswordPolicyRefInput var2)) {
            return false;
         } else {
            if (!var2.canEqual(this)) {
               return false;
            }

            String var3 = this.getGoid();
            String var4 = var2.getGoid();
            return var3 == null ? var4 == null : var3.equals(var4);
         }
      }

      @Generated
      protected boolean canEqual(Object var1) {
         return var1 instanceof PasswordPolicyDTO.PasswordPolicyRefInput;
      }

      @Generated
      @Override
      public int hashCode() {
         byte var1 = 59;
         byte var2 = 1;
         String var3 = this.getGoid();
         return var2 * 59 + (var3 == null ? 43 : var3.hashCode());
      }

      @Generated
      @Override
      public String toString() {
         return b + this.getGoid() + ")";
      }

      static {
         String var10002 = a(109, a("mZe\u0002S\u0014xYky\u001dM\u0018syoY_t\u001ayNLy\u0003@+eQRu\bv\u001eltUf\u0004PSmRRrL"));
         byte var10001 = -1;
         b = var10002;
      }

      private static char[] a(String var0) {
         char[] var10000 = var0.toCharArray();
         if (var10000.length < 2) {
            var10000[0] = (char)(var10000[0] ^ 103);
         }

         return var10000;
      }

      private static String a(int var0, char[] var1) {
         int var10003 = var1.length;
         int var10002 = var0;
         char[] var10001 = var1;
         int var10000 = var10003;

         for (int var2 = 0; var10000 > var2; var2++) {
            var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
               case 0 -> 80;
               case 1 -> 86;
               case 2 -> 123;
               case 3 -> 28;
               case 4 -> 73;
               case 5 -> 22;
               default -> 103;
            });
         }

         return new String(var10001).intern();
      }
   }

   @JsonIncludeProperties(
      {
            "forcePasswordChangeNewUser",
            "noRepeatingCharacters",
            "minPasswordLength",
            "maxPasswordLength",
            "upperMinimum",
            "lowerMinimum",
            "numberMinimum",
            "symbolMinimum",
            "nonNumericMinimum",
            "charDiffMinimum",
            "repeatFrequency",
            "passwordExpiry",
            "allowableChangesPerDay"
      }
   )
   @JsonPropertyOrder(
      {
            "forcePasswordChangeNewUser",
            "noRepeatingCharacters",
            "minPasswordLength",
            "maxPasswordLength",
            "upperMinimum",
            "lowerMinimum",
            "numberMinimum",
            "symbolMinimum",
            "nonNumericMinimum",
            "charDiffMinimum",
            "repeatFrequency",
            "passwordExpiry",
            "allowableChangesPerDay"
      }
   )
   public static class PasswordPolicyWrapper extends PasswordPolicyDTO {
      protected PasswordPolicyWrapper(IdentityProviderPasswordPolicy var1) {
         super(var1);
      }

      @Override
      protected Object createWrapperObject() {
         return null;
      }
   }
}
