content: /*
   * Copyright 2017-2025 Hyland Software, Inc. and its affiliates.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.activiti.cloud.identity.model;
  
  import java.util.Objects;
  
  public class User {
  
      private String id;
      private String firstName;
      private String lastName;
      private String username;
      private String email;
      private String displayName;
  
      public User() {}
  
      public User(String id, String firstName, String lastName, String username, String email, String displayName) {
          this.id = id;
          this.firstName = firstName;
          this.lastName = lastName;
          this.username = username;
          this.email = email;
          this.displayName = displayName;
      }
  
      public static UserBuilder builder() {
          return new UserBuilder();
      }
  
      public String getId() {
          return id;
      }
  
      public void setId(String id) {
          this.id = id;
      }
  
      public String getFirstName() {
          return firstName;
      }
  
      public void setFirstName(String firstName) {
          this.firstName = firstName;
      }
  
      public String getLastName() {
          return lastName;
      }
  
      public void setLastName(String lastName) {
          this.lastName = lastName;
      }
  
      public String getUsername() {
          return username;
      }
  
      public void setUsername(String username) {
          this.username = username;
      }
  
      public String getEmail() {
          return email;
      }
  
      public void setEmail(String email) {
          this.email = email;
      }
  
      public String getDisplayName() {
          return displayName;
      }
  
      public void setDisplayName(String displayName) {
          this.displayName = displayName;
      }
  
      @Override
      public boolean equals(Object o) {
          if (this == o) {
              return true;
          }
          if (!(o instanceof User)) {
              return false;
          }
          User that = (User) o;
          return Objects.equals(id, that.id);
      }
  
      @Override
      public int hashCode() {
          return Objects.hash(id, firstName, lastName, username, email, displayName);
      }
  
      @Override
      public String toString() {
          return (
              "User{" +
              "id='" +
              id +
              '\'' +
              ", firstName='" +
              firstName +
              '\'' +
              ", lastName='" +
              lastName +
              '\'' +
              ", username='" +
              username +
              '\'' +
              ", email='" +
              email +
              '\'' +
              ", displayName='" +
              displayName +
              '\'' +
              '}'
          );
      }
  
      public static class UserBuilder {
  
          private String id;
          private String firstName;
          private String lastName;
          private String username;
          private String email;
          private String displayName;
  
          public UserBuilder id(String id) {
              this.id = id;
              return this;
          }
  
          public UserBuilder firstName(String firstName) {
              this.firstName = firstName;
              return this;
          }
  
          public UserBuilder lastName(String lastName) {
              this.lastName = lastName;
              return this;
          }
  
          public UserBuilder username(String username) {
              this.username = username;
              return this;
          }
  
          public UserBuilder email(String email) {
              this.email = email;
              return this;
          }
  
          public UserBuilder displayName(String displayName) {
              this.displayName = displayName;
              return this;
          }
  
          public User build() {
              return new User(id, firstName, lastName, username, email, displayName);
          }
      }
  }
  