package com.l7tech.gateway.common.audit;

import com.l7tech.objectmodel.Goid;
import com.l7tech.security.rbac.RbacAttribute;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import jakarta.persistence.Transient;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Map;
import java.util.logging.Level;
import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;

@Entity
@Proxy(lazy = false)
@Table(name = "audit_admin")
public class AdminAuditRecord extends AuditRecord {
   public static final char ACTION_CREATED = 'C';
   public static final char ACTION_UPDATED = 'U';
   public static final char ACTION_DELETED = 'D';
   public static final char ACTION_LOGIN = 'L';
   public static final char ACTION_LOGOUT = 'X';
   public static final char ACTION_OTHER = 'O';
   static final String DISPLAY_ACTION_CREATED;
   static final String DISPLAY_ACTION_UPDATED;
   static final String DISPLAY_ACTION_DELETED;
   static final String DISPLAY_ACTION_LOGIN;
   static final String DISPLAY_ACTION_LOGOUT;
   static final String DISPLAY_ACTION_OTHER;
   private static final long serialVersionUID = 3321267376215395996L;
   protected String entityClassname;
   protected Goid entityGoid;
   protected char action;
   private static final String[] b;

   public AdminAuditRecord(
      Level var1, String var2, Goid var3, String var4, String var5, char var6, String var7, Goid var8, String var9, String var10, String var11
   ) {
      super(var1, var2, var11, var8, var9, var10, var5, var7);
      if (var9 == null) {
         throw new IllegalStateException(b[13]);
      }

      this.entityGoid = var3;
      this.entityClassname = var4;
      this.action = var6;
   }

   @Deprecated
   public AdminAuditRecord() {
   }

   @RbacAttribute
   @Column(name = "entity_class")
   public String getEntityClassname() {
      return this.entityClassname;
   }

   @Column(name = "entity_id")
   @Type(type = "com.l7tech.server.util.GoidType")
   public Goid getEntityGoid() {
      return this.entityGoid;
   }

   @RbacAttribute
   @Column(name = "action")
   public char getAction() {
      return this.action;
   }

   @Deprecated
   public void setEntityClassname(String var1) {
      this.entityClassname = var1;
   }

   @Deprecated
   public void setEntityGoid(Goid var1) {
      this.entityGoid = var1;
   }

   @Deprecated
   public void setAction(char var1) {
      this.action = var1;
   }

   @Override
   public void serializeOtherProperties(OutputStream param1, boolean param2, boolean param3) throws IOException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: getfield com/l7tech/gateway/common/audit/AdminAuditRecord.entityClassname Ljava/lang/String;
      // 04: ifnull 19
      // 07: aload 1
      // 08: aload 0
      // 09: getfield com/l7tech/gateway/common/audit/AdminAuditRecord.entityClassname Ljava/lang/String;
      // 0c: invokevirtual java/lang/String.getBytes ()[B
      // 0f: invokevirtual java/io/OutputStream.write ([B)V
      // 12: goto 19
      // 15: invokestatic com/l7tech/gateway/common/audit/AdminAuditRecord.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 18: athrow
      // 19: aload 1
      // 1a: ldc ":"
      // 1c: invokevirtual java/lang/String.getBytes ()[B
      // 1f: invokevirtual java/io/OutputStream.write ([B)V
      // 22: aload 0
      // 23: getfield com/l7tech/gateway/common/audit/AdminAuditRecord.entityGoid Lcom/l7tech/objectmodel/Goid;
      // 26: ifnull 59
      // 29: aload 1
      // 2a: iload 3
      // 2b: ifeq 49
      // 2e: goto 35
      // 31: invokestatic com/l7tech/gateway/common/audit/AdminAuditRecord.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 34: athrow
      // 35: aload 0
      // 36: getfield com/l7tech/gateway/common/audit/AdminAuditRecord.entityGoid Lcom/l7tech/objectmodel/Goid;
      // 39: invokevirtual com/l7tech/objectmodel/Goid.getLow ()J
      // 3c: invokestatic java/lang/Long.toString (J)Ljava/lang/String;
      // 3f: invokevirtual java/lang/String.getBytes ()[B
      // 42: goto 53
      // 45: invokestatic com/l7tech/gateway/common/audit/AdminAuditRecord.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 48: athrow
      // 49: aload 0
      // 4a: getfield com/l7tech/gateway/common/audit/AdminAuditRecord.entityGoid Lcom/l7tech/objectmodel/Goid;
      // 4d: invokestatic com/l7tech/objectmodel/Goid.toString (Lcom/l7tech/objectmodel/Goid;)Ljava/lang/String;
      // 50: invokevirtual java/lang/String.getBytes ()[B
      // 53: invokevirtual java/io/OutputStream.write ([B)V
      // 56: goto 6d
      // 59: iload 3
      // 5a: ifeq 6d
      // 5d: aload 1
      // 5e: ldc "0"
      // 60: invokevirtual java/lang/String.getBytes ()[B
      // 63: invokevirtual java/io/OutputStream.write ([B)V
      // 66: goto 6d
      // 69: invokestatic com/l7tech/gateway/common/audit/AdminAuditRecord.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6c: athrow
      // 6d: aload 1
      // 6e: ldc ":"
      // 70: invokevirtual java/lang/String.getBytes ()[B
      // 73: invokevirtual java/io/OutputStream.write ([B)V
      // 76: aload 1
      // 77: aload 0
      // 78: getfield com/l7tech/gateway/common/audit/AdminAuditRecord.action C
      // 7b: invokevirtual java/io/OutputStream.write (I)V
      // 7e: aload 1
      // 7f: ldc ":"
      // 81: invokevirtual java/lang/String.getBytes ()[B
      // 84: invokevirtual java/io/OutputStream.write ([B)V
      // 87: return
      // try (0 -> 8): 9 java/io/IOException
      // try (11 -> 21): 22 java/io/IOException
      // try (18 -> 30): 30 java/io/IOException
      // try (38 -> 44): 45 java/io/IOException
   }

   @Transient
   @Override
   public Map<String, Object> getAuditMetadata() {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: new java/util/HashMap
      // 03: dup
      // 04: aload 0
      // 05: invokespecial com/l7tech/gateway/common/audit/AuditRecord.getAuditMetadata ()Ljava/util/Map;
      // 08: invokespecial java/util/HashMap.<init> (Ljava/util/Map;)V
      // 0b: astore 1
      // 0c: aload 1
      // 0d: getstatic com/l7tech/gateway/common/audit/a.g Ljava/lang/String;
      // 10: aload 0
      // 11: getfield com/l7tech/gateway/common/audit/AdminAuditRecord.entityClassname Ljava/lang/String;
      // 14: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 19: pop
      // 1a: aload 0
      // 1b: getfield com/l7tech/gateway/common/audit/AdminAuditRecord.name Ljava/lang/String;
      // 1e: ifnull 47
      // 21: aload 0
      // 22: getfield com/l7tech/gateway/common/audit/AdminAuditRecord.name Ljava/lang/String;
      // 25: invokevirtual java/lang/String.isEmpty ()Z
      // 28: ifne 47
      // 2b: goto 32
      // 2e: invokestatic com/l7tech/gateway/common/audit/AdminAuditRecord.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 31: athrow
      // 32: aload 1
      // 33: getstatic com/l7tech/gateway/common/audit/a.h Ljava/lang/String;
      // 36: aload 0
      // 37: getfield com/l7tech/gateway/common/audit/AdminAuditRecord.name Ljava/lang/String;
      // 3a: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 3f: pop
      // 40: goto 66
      // 43: invokestatic com/l7tech/gateway/common/audit/AdminAuditRecord.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 46: athrow
      // 47: aload 0
      // 48: getfield com/l7tech/gateway/common/audit/AdminAuditRecord.entityGoid Lcom/l7tech/objectmodel/Goid;
      // 4b: ifnull 66
      // 4e: aload 1
      // 4f: getstatic com/l7tech/gateway/common/audit/a.h Ljava/lang/String;
      // 52: aload 0
      // 53: getfield com/l7tech/gateway/common/audit/AdminAuditRecord.entityGoid Lcom/l7tech/objectmodel/Goid;
      // 56: invokevirtual com/l7tech/objectmodel/Goid.toString ()Ljava/lang/String;
      // 59: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 5e: pop
      // 5f: goto 66
      // 62: invokestatic com/l7tech/gateway/common/audit/AdminAuditRecord.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 65: athrow
      // 66: aload 1
      // 67: getstatic com/l7tech/gateway/common/audit/a.i Ljava/lang/String;
      // 6a: aload 0
      // 6b: getfield com/l7tech/gateway/common/audit/AdminAuditRecord.action C
      // 6e: invokestatic com/l7tech/gateway/common/audit/AdminAuditRecord.getActionDisplayName (C)Ljava/lang/String;
      // 71: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 76: pop
      // 77: aload 1
      // 78: areturn
      // try (6 -> 19): 20 java/lang/IllegalStateException
      // try (15 -> 29): 29 java/lang/IllegalStateException
      // try (31 -> 41): 42 java/lang/IllegalStateException
   }

   public static String getActionDisplayName(char var0) {
      label30: {
         label29: {
            label34: {
               try {
                  switch (var0) {
                     case 'C':
                        return b[5];
                     case 'D':
                        break label29;
                     case 'L':
                        break label34;
                     case 'O':
                        return b[3];
                     case 'U':
                        break label30;
                     case 'X':
                        break;
                     default:
                        return null;
                  }
               } catch (IllegalStateException var2) {
                  throw b(var2);
               }

               String[] var1 = b;
               return var1[6];
            }

            String[] var4 = b;
            return var4[12];
         }

         String[] var5 = b;
         return var5[2];
      }

      String[] var3 = b;
      return var3[11];
   }

   @Transient
   @Override
   public String getLoggerName() {
      return b[8];
   }

   private static Exception b(Exception var0) {
      return var0;
   }

   static {
      String[] var5 = new String[14];
      int var3 = 0;
      String var2 = "\u0012[IbDhe\u0019\\ObSy!\u000b\u001c]NnI<\t2^Ji\u000e\u0012[IbDhe\u0019\\ObSy!\u0005\u0012MKbU\u000e\u0012[IbDhe\u001eQBi@y!\u000e\u0012[IbDhe\u001eKFfSy!\f\u001c]NnI<\t2^LrS\u000e\u0012[IbDhe\u001eKFfSy!\u0017>VN)K+18ZK)Ty7+\\Q)Fx(4W\f\u001c]NnI<\t2^LrS\u0005\u0012MKbU\u000e\u0012[IbDhe\u001eQBi@y!";
      int var4 = "\u0012[IbDhe\u0019\\ObSy!\u000b\u001c]NnI<\t2^Ji\u000e\u0012[IbDhe\u0019\\ObSy!\u0005\u0012MKbU\u000e\u0012[IbDhe\u001eQBi@y!\u000e\u0012[IbDhe\u001eKFfSy!\f\u001c]NnI<\t2^LrS\u000e\u0012[IbDhe\u001eKFfSy!\u0017>VN)K+18ZK)Ty7+\\Q)Fx(4W\f\u001c]NnI<\t2^LrS\u0005\u0012MKbU\u000e\u0012[IbDhe\u001eQBi@y!"
         .length();
      char var1 = 14;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 112;
         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) {
                     b = var5;
                     String[] var9 = b;
                     DISPLAY_ACTION_LOGIN = b[1];
                     DISPLAY_ACTION_UPDATED = var9[4];
                     DISPLAY_ACTION_LOGOUT = var9[9];
                     DISPLAY_ACTION_CREATED = var9[7];
                     DISPLAY_ACTION_OTHER = var9[10];
                     DISPLAY_ACTION_DELETED = var9[0];
                     return;
                  }

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

                  var2 = "P\u0011\u0002\"\u0005pE~\u0012\u0006%.R\u001a\u001a'\u000f>.eU\u000b.\u001f5{|\u001c\u0001.K3|c\u0007\n%\u001fphu\u0018\u0006%\u0002#}c\u0014\u001b$\u0019pe~\u0012\u0006%";
                  var4 = "P\u0011\u0002\"\u0005pE~\u0012\u0006%.R\u001a\u001a'\u000f>.eU\u000b.\u001f5{|\u001c\u0001.K3|c\u0007\n%\u001fphu\u0018\u0006%\u0002#}c\u0014\u001b$\u0019pe~\u0012\u0006%"
                     .length();
                  var1 = 11;
                  var7 = -1;
            }

            var10000 = 60;
            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] ^ 53);
      }

      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 -> 45;
            case 1 -> 73;
            case 2 -> 83;
            case 3 -> 119;
            case 4 -> 87;
            case 5 -> 108;
            default -> 53;
         });
      }

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