View Javadoc
1   package io.extact.rms.external.webapi.dto;
2   
3   import org.apache.commons.lang3.builder.ToStringBuilder;
4   import org.apache.commons.lang3.builder.ToStringStyle;
5   import org.eclipse.microprofile.openapi.annotations.media.Schema;
6   
7   import lombok.Getter;
8   import lombok.Setter;
9   
10  import io.extact.rms.application.domain.UserAccount;
11  import io.extact.rms.application.domain.UserAccount.UserType;
12  import io.extact.rms.application.domain.constraint.Contact;
13  import io.extact.rms.application.domain.constraint.LoginId;
14  import io.extact.rms.application.domain.constraint.Passowrd;
15  import io.extact.rms.application.domain.constraint.PhoneNumber;
16  import io.extact.rms.application.domain.constraint.RmsId;
17  import io.extact.rms.application.domain.constraint.UserName;
18  import io.extact.rms.application.domain.constraint.UserTypeConstraint;
19  
20  @Schema(description = "ユーザDTO")
21  @Getter
22  @Setter
23  public class UserAccountResourceDto {
24  
25      @RmsId
26      @Schema(required = true)
27      private Integer id;
28  
29      @LoginId
30      @Schema(required = true)
31      private String loginId;
32  
33      @Passowrd
34      @Schema(required = true)
35      private String password;
36  
37      @UserName
38      @Schema(required = false)
39      private String userName;
40  
41      @PhoneNumber
42      @Schema(required = false)
43      private String phoneNumber;
44  
45      @Contact
46      @Schema(required = false)
47      private String contact;
48  
49      @UserTypeConstraint
50      @Schema(required = true)
51      private UserType userType;
52  
53      public static UserAccountResourceDto toDto(UserAccount entity) {
54          if (entity == null) {
55              return null;
56          }
57          var dto = new UserAccountResourceDto();
58          dto.setId(entity.getId());
59          dto.setLoginId(entity.getLoginId());
60          dto.setPassword(entity.getPassword());
61          dto.setUserName(entity.getUserName());
62          dto.setPhoneNumber(entity.getPhoneNumber());
63          dto.setContact(entity.getContact());
64          dto.setUserType(entity.getUserType().name());
65          return dto;
66      }
67  
68      public UserAccount toEntity() {
69          return UserAccount.of(id, loginId, password, userName, phoneNumber, contact, userType);
70      }
71  
72      // original getter
73      public String getUserType() {
74          return userType.name();
75      }
76  
77      // original setter
78      public void setUserType(String userType) {
79          this.userType = UserType.valueOf(userType);
80      }
81  
82      @Override
83      public String toString() {
84          return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
85      }
86  }