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
73 public String getUserType() {
74 return userType.name();
75 }
76
77
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 }