1 package io.extact.rms.external.webapi.dto;
2
3 import org.eclipse.microprofile.openapi.annotations.media.Schema;
4
5 import lombok.Getter;
6 import lombok.Setter;
7
8 import io.extact.rms.application.domain.UserAccount;
9 import io.extact.rms.application.domain.UserAccount.UserType;
10 import io.extact.rms.application.domain.constraint.ItemName;
11 import io.extact.rms.application.domain.constraint.LoginId;
12 import io.extact.rms.application.domain.constraint.Passowrd;
13 import io.extact.rms.application.domain.constraint.UserName;
14 import io.extact.rms.application.domain.constraint.UserTypeConstraint;
15
16 @Schema(description = "ユーザ登録用DTO")
17 @Getter
18 @Setter
19 public class AddUserAccountDto {
20
21 @Schema(required = true)
22 @LoginId
23 private String loginId;
24
25 @Schema(required = true)
26 @Passowrd
27 private String password;
28
29 @Schema(required = true)
30 @UserName
31 private String userName;
32
33 @Schema(required = false)
34 @ItemName
35 private String phoneNumber;
36
37 @Schema(required = false)
38 private String contact;
39
40 @Schema(required = true)
41 @UserTypeConstraint
42 private UserType userType;
43
44 public UserAccount toEntity() {
45 return UserAccount.ofTransient(loginId, password, userName, phoneNumber, contact, userType);
46 }
47 }