diff --git a/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/AdminRequestDto.java b/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/AdminRequestDto.java index 6e3cf015..42ca19c8 100644 --- a/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/AdminRequestDto.java +++ b/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/AdminRequestDto.java @@ -1,17 +1,21 @@ package JGS.CasperEvent.domain.event.dto.RequestDto; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import lombok.*; @Getter @Builder @EqualsAndHashCode +@Schema(description = "관리자 계정 생성 요청을 위한 데이터입니다.") public class AdminRequestDto { @NotNull + @Schema(description = "관리자 아이디", example = "adminId", required = true) private String adminId; @NotNull + @Schema(description = "관리자 인증을 위한 비밀번호", example = "password", required = true) private String password; } diff --git a/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/lotteryEventDto/CasperBotRequestDto.java b/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/lotteryEventDto/CasperBotRequestDto.java index 9a85979d..54706381 100644 --- a/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/lotteryEventDto/CasperBotRequestDto.java +++ b/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/lotteryEventDto/CasperBotRequestDto.java @@ -1,5 +1,6 @@ package JGS.CasperEvent.domain.event.dto.RequestDto.lotteryEventDto; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotNull; @@ -10,37 +11,46 @@ @Getter @Builder @EqualsAndHashCode +@Schema(description = "캐스퍼 봇 생성 요청을 위한 데이터입니다.") public class CasperBotRequestDto { @NotNull(message = "눈 모양 값은 필수 필드입니다.") @Min(value = 0, message = "눈 모양 값이 부적절합니다.") @Max(value = 7, message = "눈 모양 값이 부적절합니다.") + @Schema(description = "눈 모양 값", example = "1", required = true) private Integer eyeShape; @NotNull(message = "눈 위치 값은 필수 필드입니다.") @Min(value = 0, message = "눈 위치 값이 부적절합니다.") @Max(value = 2, message = "눈 위치 값이 부적절합니다.") + @Schema(description = "눈 위치 값", example = "1", required = true) private Integer eyePosition; @NotNull(message = "입 모양 값은 필수 필드입니다.") @Min(value = 0, message = "입 모양 값이 부적절합니다.") @Max(value = 4, message = "입 모양 값이 부적절합니다.") + @Schema(description = "입 모양 값", example = "2", required = true) private Integer mouthShape; @NotNull(message = "색깔 값은 필수 필드입니다.") @Min(value = 0, message = "색깔 값이 부적절합니다.") @Max(value = 17, message = "색깔 값이 부적절합니다.") + @Schema(description = "색깔 값", example = "8", required = true) private Integer color; @NotNull(message = "스티커 값은 필수 필드입니다.") @Min(value = 0, message = "스티커 값이 부적절합니다.") @Max(value = 4, message = "스티커 값이 부적절합니다.") + @Schema(description = "스티커 값", example = "1", required = true) private Integer sticker; - @NotNull(message = "이름은 필수 필드입니다. ") + @NotNull(message = "이름은 필수 필드입니다.") + @Schema(description = "캐스퍼 봇의 이름", example = "MyCasperBot", required = true) private String name; + @Schema(description = "기대평", example = "캐스퍼 정말 기대되요!") private String expectation; + @Schema(description = "추천인 ID", example = "referralId") private String referralId = ""; } diff --git a/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/lotteryEventDto/LotteryEventRequestDto.java b/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/lotteryEventDto/LotteryEventRequestDto.java index a50fede8..76f1a745 100644 --- a/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/lotteryEventDto/LotteryEventRequestDto.java +++ b/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/lotteryEventDto/LotteryEventRequestDto.java @@ -1,5 +1,6 @@ package JGS.CasperEvent.domain.event.dto.RequestDto.lotteryEventDto; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,20 +12,26 @@ @Getter @Builder @EqualsAndHashCode +@Schema(description = "추첨 이벤트를 생성하기 위한 요청 데이터입니다.") public class LotteryEventRequestDto { @NotNull(message = "이벤트 시작 날짜를 지정하세요.") + @Schema(description = "이벤트의 시작 날짜", example = "2024-09-01", required = true) private LocalDate startDate; @NotNull(message = "이벤트 시작 시간을 지정하세요.") + @Schema(description = "이벤트의 시작 시간", example = "14:00:00", required = true) private LocalTime startTime; @NotNull(message = "이벤트 종료 날짜를 지정하세요.") + @Schema(description = "이벤트의 종료 날짜", example = "2024-09-30", required = true) private LocalDate endDate; - @NotNull(message = "이벤트 시작 시간을 지정하세요.") + @NotNull(message = "이벤트 종료 시간을 지정하세요.") + @Schema(description = "이벤트의 종료 시간", example = "18:00:00", required = true) private LocalTime endTime; @NotNull(message = "당첨인원 수를 지정하세요.") + @Schema(description = "당첨 인원 수", example = "10", required = true) private int winnerCount; } diff --git a/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/rushEventDto/RushEventOptionRequestDto.java b/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/rushEventDto/RushEventOptionRequestDto.java index bbb142ae..d27a670a 100644 --- a/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/rushEventDto/RushEventOptionRequestDto.java +++ b/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/rushEventDto/RushEventOptionRequestDto.java @@ -1,6 +1,8 @@ package JGS.CasperEvent.domain.event.dto.RequestDto.rushEventDto; +import io.swagger.v3.oas.annotations.media.Schema; import JGS.CasperEvent.global.enums.Position; +import jakarta.validation.constraints.NotNull; import lombok.Builder; import lombok.Getter; import lombok.ToString; @@ -8,12 +10,34 @@ @ToString @Getter @Builder +@Schema(description = "선착순 이벤트 선택지를 생성하기 위한 요청 데이터입니다.") public class RushEventOptionRequestDto { + + @Schema(description = "선착순 이벤트 선택지 ID", example = "1") + @NotNull(message = "선착순 이벤트 선택지 ID는 필수 값입니다.") private Long rushOptionId; + + @Schema(description = "선택지의 위치", example = "LEFT", implementation = Position.class) + @NotNull(message = "선택지의 위치는 필수 값입니다.") private Position position; + + @Schema(description = "선택지 메인 텍스트", example = "첫 차는 저렴해야 한다") + @NotNull(message = "선택지 메인 텍스트는 필수 값입니다.") private String mainText; + + @Schema(description = "선택지 서브 텍스트", example = "가성비 좋게 저렴한 차로 시작해서 차근히 업그레이드하고 싶어") + @NotNull(message = "선택지 서브 텍스트는 필수 값입니다.") private String subText; + + @Schema(description = "선택지 결과 메인 텍스트", example = "가성비 좋은 도심형 전기차") + @NotNull(message = "선택지 결과 메인 텍스트는 필수 값입니다.") private String resultMainText; + + @Schema(description = "선택지 결과 서브 텍스트", example = "캐스퍼 일렉트릭은 전기차 평균보다 30% 저렴해요 첫 차로 캐스퍼 일렉트릭 어떤가요?") + @NotNull(message = "선택지 결과 서브 텍스트는 필수 값입니다.") private String resultSubText; + + @Schema(description = "선택지 이미지 URL", example = "https://example.com/image.png") + @NotNull(message = "선택지 이미지 URL은 필수 값입니다.") private String imageUrl; } diff --git a/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/rushEventDto/RushEventRequestDto.java b/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/rushEventDto/RushEventRequestDto.java index 8db77309..170e4605 100644 --- a/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/rushEventDto/RushEventRequestDto.java +++ b/Server/src/main/java/JGS/CasperEvent/domain/event/dto/RequestDto/rushEventDto/RushEventRequestDto.java @@ -1,5 +1,6 @@ package JGS.CasperEvent.domain.event.dto.RequestDto.rushEventDto; +import io.swagger.v3.oas.annotations.media.Schema; import JGS.CasperEvent.global.enums.CustomErrorCode; import JGS.CasperEvent.global.enums.Position; import JGS.CasperEvent.global.error.exception.CustomException; @@ -17,29 +18,38 @@ @Getter @Builder @EqualsAndHashCode -//todo 검증 항목 추가 필요 +@Schema(description = "선착순 이벤트 요청을 위한 데이터입니다.") public class RushEventRequestDto { + + @Schema(description = "선착순 이벤트 ID", example = "1") @NotNull(message = "선착순 이벤트 아이디는 필수 항목입니다.") private Long rushEventId; + @Schema(description = "이벤트 날짜", example = "2024-08-20") @NotNull(message = "이벤트 시작 날짜는 필수 항목입니다.") private LocalDate eventDate; + @Schema(description = "이벤트 시작 시간", example = "14:00:00") @NotNull(message = "이벤트 시작 시간은 필수 항목입니다.") private LocalTime startTime; - @NotNull(message = "이벤트 종료 시간 필수 항목입니다.") + @Schema(description = "이벤트 종료 시간", example = "16:00:00") + @NotNull(message = "이벤트 종료 시간은 필수 항목입니다.") private LocalTime endTime; + @Schema(description = "당첨자 수", example = "3") @NotNull(message = "당첨자 수는 필수 항목입니다.") private int winnerCount; + @Schema(description = "상품 사진 URL", example = "https://example.com/image.png") @NotNull(message = "상품 사진은 필수 항목입니다.") private String prizeImageUrl; + @Schema(description = "상품 상세 설명", example = "올리브영 1만원권") @NotNull(message = "상품 상세 정보는 필수 항목입니다.") private String prizeDescription; + @Schema(description = "선택지 목록") private Set options; public RushEventOptionRequestDto getLeftOptionRequestDto() {