View Javadoc
1   package io.extact.rms.client.api.dto;
2   
3   import java.util.Set;
4   
5   import org.apache.commons.lang3.builder.ToStringBuilder;
6   import org.apache.commons.lang3.builder.ToStringStyle;
7   
8   import lombok.AllArgsConstructor;
9   import lombok.Getter;
10  import lombok.NoArgsConstructor;
11  import lombok.Setter;
12  
13  @Getter
14  @Setter
15  @NoArgsConstructor
16  @AllArgsConstructor(staticName = "of")
17  public class UserAccountClientDto implements Convertable {
18  
19      private Integer id;
20      private String loginId;
21      private String password;
22      private String userName;
23      private String phoneNumber;
24      private String contact;
25      private ClientUserType userType;
26  
27      public enum ClientUserType {
28  
29          ADMIN(true),
30          MEMBER(false);
31  
32          boolean admin;
33          private ClientUserType(boolean admin) {
34              this.admin = admin;
35          }
36  
37          public boolean isAdmin() {
38              return admin;
39          }
40  
41          public static boolean isValidUserType(String userTypeName) {
42              try {
43                  ClientUserType.valueOf(userTypeName);
44                  return true;
45              } catch (IllegalArgumentException e) {
46                  return false;
47              }
48          }
49      }
50  
51      public static UserAccountClientDto ofTransient(String loginId, String password, String userName, String phoneNumber, String contact, ClientUserType userType) {
52          return of(null, loginId, password, userName, phoneNumber, contact, userType);
53      }
54  
55      public Set<String> getRoles() {
56          return Set.of(userType.name());
57      }
58  
59      @Override
60      public String toString() {
61          return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
62      }
63  }