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 }