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.RentalItem;
11 import io.extact.rms.application.domain.constraint.ItemName;
12 import io.extact.rms.application.domain.constraint.RmsId;
13 import io.extact.rms.application.domain.constraint.SerialNo;
14
15 @Schema(description = "レンタル品DTO")
16 @Getter
17 @Setter
18 public class RentalItemResourceDto {
19
20 @RmsId
21 @Schema(required = true)
22 private Integer id;
23
24 @SerialNo
25 @Schema(required = true)
26 private String serialNo;
27
28 @ItemName
29 @Schema(required = false)
30 private String itemName;
31
32 public static RentalItemResourceDto toDto(RentalItem entity) {
33 if (entity == null) {
34 return null;
35 }
36 var dto = new RentalItemResourceDto();
37 dto.setId(entity.getId());
38 dto.setSerialNo(entity.getSerialNo());
39 dto.setItemName(entity.getItemName());
40 return dto;
41 }
42
43 public RentalItem toEntity() {
44 return RentalItem.of(id, serialNo, itemName);
45 }
46
47 @Override
48 public String toString() {
49 return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
50 }
51 }