package com.airlock.iam.common.domain.model.accountlink.persistence;

import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

public final class AccountLinkUsernameChangeData {
   private final String oldUsername;
   private final String newUsername;

   @SuppressFBWarnings(justification = "generated code")
   public static AccountLinkUsernameChangeData.AccountLinkUsernameChangeDataBuilder usernameChangeData() {
      return new AccountLinkUsernameChangeData.AccountLinkUsernameChangeDataBuilder();
   }

   @SuppressFBWarnings(justification = "generated code")
   public String oldUsername() {
      return this.oldUsername;
   }

   @SuppressFBWarnings(justification = "generated code")
   public String newUsername() {
      return this.newUsername;
   }

   @SuppressFBWarnings(justification = "generated code")
   @Override
   public boolean equals(Object o) {
      if (o == this) {
         return true;
      } else if (!(o instanceof AccountLinkUsernameChangeData other)) {
         return false;
      } else {
         Object this$oldUsername = this.oldUsername;
         Object other$oldUsername = other.oldUsername;
         if (this$oldUsername == null ? other$oldUsername == null : this$oldUsername.equals(other$oldUsername)) {
            Object this$newUsername = this.newUsername;
            Object other$newUsername = other.newUsername;
            return this$newUsername == null ? other$newUsername == null : this$newUsername.equals(other$newUsername);
         } else {
            return false;
         }
      }
   }

   @SuppressFBWarnings(justification = "generated code")
   @Override
   public int hashCode() {
      int PRIME = 59;
      int result = 1;
      Object $oldUsername = this.oldUsername;
      result = result * 59 + ($oldUsername == null ? 43 : $oldUsername.hashCode());
      Object $newUsername = this.newUsername;
      return result * 59 + ($newUsername == null ? 43 : $newUsername.hashCode());
   }

   @SuppressFBWarnings(justification = "generated code")
   @Override
   public String toString() {
      return "AccountLinkUsernameChangeData(oldUsername=" + this.oldUsername() + ", newUsername=" + this.newUsername() + ")";
   }

   @SuppressFBWarnings(justification = "generated code")
   private AccountLinkUsernameChangeData(String oldUsername, String newUsername) {
      this.oldUsername = oldUsername;
      this.newUsername = newUsername;
   }

   @SuppressFBWarnings(justification = "generated code")
   public static class AccountLinkUsernameChangeDataBuilder {
      @SuppressFBWarnings(justification = "generated code")
      private String oldUsername;
      @SuppressFBWarnings(justification = "generated code")
      private String newUsername;

      @SuppressFBWarnings(justification = "generated code")
      AccountLinkUsernameChangeDataBuilder() {
      }

      @SuppressFBWarnings(justification = "generated code")
      public AccountLinkUsernameChangeData.AccountLinkUsernameChangeDataBuilder oldUsername(String oldUsername) {
         this.oldUsername = oldUsername;
         return this;
      }

      @SuppressFBWarnings(justification = "generated code")
      public AccountLinkUsernameChangeData.AccountLinkUsernameChangeDataBuilder newUsername(String newUsername) {
         this.newUsername = newUsername;
         return this;
      }

      @SuppressFBWarnings(justification = "generated code")
      public AccountLinkUsernameChangeData build() {
         return new AccountLinkUsernameChangeData(this.oldUsername, this.newUsername);
      }

      @SuppressFBWarnings(justification = "generated code")
      @Override
      public String toString() {
         return "AccountLinkUsernameChangeData.AccountLinkUsernameChangeDataBuilder(oldUsername="
            + this.oldUsername
            + ", newUsername="
            + this.newUsername
            + ")";
      }
   }
}
