diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketItemController.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketItemController.java index 8ecfb9fa..40ee4c50 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketItemController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketItemController.java @@ -4,10 +4,12 @@ import band.gosrock.api.ticketItem.dto.request.ApplyTicketOptionRequest; import band.gosrock.api.ticketItem.dto.request.CreateTicketItemRequest; import band.gosrock.api.ticketItem.dto.response.ApplyTicketOptionResponse; -import band.gosrock.api.ticketItem.dto.response.CreateTicketItemResponse; -import band.gosrock.api.ticketItem.dto.response.GetTicketItemOptionResponse; +import band.gosrock.api.ticketItem.dto.response.GetEventTicketItemsResponse; +import band.gosrock.api.ticketItem.dto.response.GetTicketItemOptionsResponse; +import band.gosrock.api.ticketItem.dto.response.TicketItemResponse; import band.gosrock.api.ticketItem.service.ApplyTicketOptionUseCase; import band.gosrock.api.ticketItem.service.CreateTicketItemUseCase; +import band.gosrock.api.ticketItem.service.GetEventTicketItemsUseCase; import band.gosrock.api.ticketItem.service.GetTicketOptionsUseCase; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.security.SecurityRequirement; @@ -26,12 +28,13 @@ public class TicketItemController { public final CreateTicketItemUseCase createTicketItemUseCase; public final ApplyTicketOptionUseCase applyTicketOptionUseCase; public final GetTicketOptionsUseCase getTicketOptionsUseCase; + public final GetEventTicketItemsUseCase getEventTicketItemsUseCase; @Operation( summary = "특정 이벤트에 속하는 티켓 상품을 생성합니다.", description = "제휴 되지 않은 회원은 티켓 가격 0으로 강제해 보내주세요!") @PostMapping - public CreateTicketItemResponse createTicketItem( + public TicketItemResponse createTicketItem( @RequestBody @Valid CreateTicketItemRequest createTicketItemRequest, @PathVariable Long eventId) { return createTicketItemUseCase.execute(createTicketItemRequest, eventId); @@ -46,9 +49,15 @@ public ApplyTicketOptionResponse applyTicketOption( return applyTicketOptionUseCase.execute(applyTicketOptionRequest, eventId, ticketItemId); } + @Operation(summary = "해당 이벤트의 티켓상품을 모두 조회합니다.") + @GetMapping + public GetEventTicketItemsResponse getEventTicketItems(@PathVariable Long eventId) { + return getEventTicketItemsUseCase.execute(eventId); + } + @Operation(summary = "해당 티켓상품의 옵션을 모두 조회합니다.") @GetMapping("/{ticketItemId}/options") - public GetTicketItemOptionResponse getTicketItemOptions( + public GetTicketItemOptionsResponse getTicketItemOptions( @PathVariable Long eventId, @PathVariable Long ticketItemId) { return getTicketOptionsUseCase.execute(eventId, ticketItemId); } diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketOptionController.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketOptionController.java index b59b215a..5811dcd9 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketOptionController.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/controller/TicketOptionController.java @@ -2,7 +2,7 @@ import band.gosrock.api.ticketItem.dto.request.CreateTicketOptionRequest; -import band.gosrock.api.ticketItem.dto.response.TicketOptionResponse; +import band.gosrock.api.ticketItem.dto.response.OptionGroupResponse; import band.gosrock.api.ticketItem.service.CreateTicketOptionUseCase; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.security.SecurityRequirement; @@ -22,7 +22,7 @@ public class TicketOptionController { @Operation(summary = "특정 이벤트에 속하는 티켓옵션을 생성합니다.") @PostMapping - public TicketOptionResponse createTicketOption( + public OptionGroupResponse createTicketOption( @RequestBody @Valid CreateTicketOptionRequest createTicketOptionRequest, @PathVariable Long eventId) { return createTicketOptionUseCase.execute(createTicketOptionRequest, eventId); diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/GetEventTicketItemsResponse.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/GetEventTicketItemsResponse.java new file mode 100644 index 00000000..fd7904e9 --- /dev/null +++ b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/GetEventTicketItemsResponse.java @@ -0,0 +1,20 @@ +package band.gosrock.api.ticketItem.dto.response; + + +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class GetEventTicketItemsResponse { + + @Schema(description = "티켓상품 리스트") + private List ticketItems; + + public static GetEventTicketItemsResponse from(List ticketItems) { + + return GetEventTicketItemsResponse.builder().ticketItems(ticketItems).build(); + } +} diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/GetTicketItemOptionResponse.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/GetTicketItemOptionResponse.java deleted file mode 100644 index dec4e3d0..00000000 --- a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/GetTicketItemOptionResponse.java +++ /dev/null @@ -1,20 +0,0 @@ -package band.gosrock.api.ticketItem.dto.response; - - -import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import lombok.Builder; -import lombok.Getter; - -@Getter -@Builder -public class GetTicketItemOptionResponse { - - @Schema(description = "옵션그룹 리스트") - private List optionGroups; - - public static GetTicketItemOptionResponse from(List optionGroups) { - - return GetTicketItemOptionResponse.builder().optionGroups(optionGroups).build(); - } -} diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/GetTicketItemOptionsResponse.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/GetTicketItemOptionsResponse.java new file mode 100644 index 00000000..cad1dae6 --- /dev/null +++ b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/GetTicketItemOptionsResponse.java @@ -0,0 +1,20 @@ +package band.gosrock.api.ticketItem.dto.response; + + +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class GetTicketItemOptionsResponse { + + @Schema(description = "옵션그룹 리스트") + private List optionGroups; + + public static GetTicketItemOptionsResponse from(List optionGroups) { + + return GetTicketItemOptionsResponse.builder().optionGroups(optionGroups).build(); + } +} diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/TicketOptionResponse.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/OptionGroupResponse.java similarity index 83% rename from DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/TicketOptionResponse.java rename to DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/OptionGroupResponse.java index 3d888586..bf91f02f 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/TicketOptionResponse.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/OptionGroupResponse.java @@ -10,11 +10,11 @@ @Getter @Builder -public class TicketOptionResponse { +public class OptionGroupResponse { @Schema(description = "옵션그룹 id") private final Long optionGroupId; - @Schema(description = "티켓 타입") + @Schema(description = "옵션그룹 타입") private final OptionGroupType type; @Schema(description = "이름") @@ -25,9 +25,9 @@ public class TicketOptionResponse { private final List options; - public static TicketOptionResponse from(OptionGroup optionGroup) { + public static OptionGroupResponse from(OptionGroup optionGroup) { - return TicketOptionResponse.builder() + return OptionGroupResponse.builder() .optionGroupId(optionGroup.getId()) .type(optionGroup.getType()) .name(optionGroup.getName()) diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/CreateTicketItemResponse.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/TicketItemResponse.java similarity index 89% rename from DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/CreateTicketItemResponse.java rename to DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/TicketItemResponse.java index 804c2b9c..a85965e9 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/CreateTicketItemResponse.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/dto/response/TicketItemResponse.java @@ -10,7 +10,7 @@ @Getter @Builder -public class CreateTicketItemResponse { +public class TicketItemResponse { @Schema(description = "티켓상품 id") private final Long ticketItemId; @@ -35,9 +35,9 @@ public class CreateTicketItemResponse { @Schema(description = "재고") private final Long quantity; - public static CreateTicketItemResponse from(TicketItem ticketItem) { + public static TicketItemResponse from(TicketItem ticketItem) { - return CreateTicketItemResponse.builder() + return TicketItemResponse.builder() .ticketItemId(ticketItem.getId()) .ticketName(ticketItem.getName()) .description(ticketItem.getDescription()) diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/mapper/TicketItemMapper.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/mapper/TicketItemMapper.java index 1ed75367..d6883d6a 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/mapper/TicketItemMapper.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/mapper/TicketItemMapper.java @@ -2,16 +2,25 @@ import band.gosrock.api.ticketItem.dto.request.CreateTicketItemRequest; +import band.gosrock.api.ticketItem.dto.response.GetEventTicketItemsResponse; +import band.gosrock.api.ticketItem.dto.response.TicketItemResponse; import band.gosrock.common.annotation.Mapper; import band.gosrock.domain.common.vo.Money; +import band.gosrock.domain.domains.event.adaptor.EventAdaptor; import band.gosrock.domain.domains.event.domain.Event; +import band.gosrock.domain.domains.ticket_item.adaptor.TicketItemAdaptor; import band.gosrock.domain.domains.ticket_item.domain.TicketItem; +import java.util.List; import lombok.RequiredArgsConstructor; +import org.springframework.transaction.annotation.Transactional; @Mapper @RequiredArgsConstructor public class TicketItemMapper { + private final TicketItemAdaptor ticketItemAdaptor; + private final EventAdaptor eventAdaptor; + public TicketItem toTicketItem(CreateTicketItemRequest createTicketItemRequest, Event event) { return TicketItem.builder() @@ -26,4 +35,13 @@ public TicketItem toTicketItem(CreateTicketItemRequest createTicketItemRequest, .event(event) .build(); } + + @Transactional(readOnly = true) + public GetEventTicketItemsResponse toGetEventTicketItemsResponse(Long eventId) { + + Event event = eventAdaptor.findById(eventId); + List ticketItems = ticketItemAdaptor.findAllByEventId(event.getId()); + return GetEventTicketItemsResponse.from( + ticketItems.stream().map(TicketItemResponse::from).toList()); + } } diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/mapper/TicketOptionMapper.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/mapper/TicketOptionMapper.java index 63958e7f..8a56d524 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/mapper/TicketOptionMapper.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/mapper/TicketOptionMapper.java @@ -2,11 +2,10 @@ import band.gosrock.api.ticketItem.dto.request.CreateTicketOptionRequest; -import band.gosrock.api.ticketItem.dto.response.GetTicketItemOptionResponse; -import band.gosrock.api.ticketItem.dto.response.TicketOptionResponse; +import band.gosrock.api.ticketItem.dto.response.GetTicketItemOptionsResponse; +import band.gosrock.api.ticketItem.dto.response.OptionGroupResponse; import band.gosrock.common.annotation.Mapper; import band.gosrock.domain.domains.event.domain.Event; -import band.gosrock.domain.domains.ticket_item.adaptor.OptionGroupAdaptor; import band.gosrock.domain.domains.ticket_item.adaptor.TicketItemAdaptor; import band.gosrock.domain.domains.ticket_item.domain.ItemOptionGroup; import band.gosrock.domain.domains.ticket_item.domain.OptionGroup; @@ -21,7 +20,6 @@ public class TicketOptionMapper { private final TicketItemAdaptor ticketItemAdaptor; - private final OptionGroupAdaptor optionGroupAdaptor; public OptionGroup toOptionGroup( CreateTicketOptionRequest createTicketOptionRequest, Event event) { @@ -36,7 +34,7 @@ public OptionGroup toOptionGroup( } @Transactional(readOnly = true) - public GetTicketItemOptionResponse toGetTicketItemOptionResponse( + public GetTicketItemOptionsResponse toGetTicketItemOptionResponse( Long eventId, Long ticketItemId) { TicketItem ticketItem = ticketItemAdaptor.queryTicketItem(ticketItemId); @@ -46,7 +44,7 @@ public GetTicketItemOptionResponse toGetTicketItemOptionResponse( .map(ItemOptionGroup::getOptionGroup) .toList(); - return GetTicketItemOptionResponse.from( - optionGroups.stream().map(TicketOptionResponse::from).toList()); + return GetTicketItemOptionsResponse.from( + optionGroups.stream().map(OptionGroupResponse::from).toList()); } } diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/CreateTicketItemUseCase.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/CreateTicketItemUseCase.java index 524723b2..814f24b1 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/CreateTicketItemUseCase.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/CreateTicketItemUseCase.java @@ -3,7 +3,7 @@ import band.gosrock.api.common.UserUtils; import band.gosrock.api.ticketItem.dto.request.CreateTicketItemRequest; -import band.gosrock.api.ticketItem.dto.response.CreateTicketItemResponse; +import band.gosrock.api.ticketItem.dto.response.TicketItemResponse; import band.gosrock.api.ticketItem.mapper.TicketItemMapper; import band.gosrock.common.annotation.UseCase; import band.gosrock.domain.domains.event.adaptor.EventAdaptor; @@ -29,7 +29,7 @@ public class CreateTicketItemUseCase { private final TicketItemMapper ticketItemMapper; @Transactional - public CreateTicketItemResponse execute( + public TicketItemResponse execute( CreateTicketItemRequest createTicketItemRequest, Long eventId) { User user = userUtils.getCurrentUser(); Event event = eventAdaptor.findById(eventId); @@ -42,6 +42,6 @@ public CreateTicketItemResponse execute( ticketItemService.createTicketItem( ticketItemMapper.toTicketItem(createTicketItemRequest, event), isPartner); - return CreateTicketItemResponse.from(ticketItem); + return TicketItemResponse.from(ticketItem); } } diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/CreateTicketOptionUseCase.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/CreateTicketOptionUseCase.java index 229b264f..5a65ddff 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/CreateTicketOptionUseCase.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/CreateTicketOptionUseCase.java @@ -3,7 +3,7 @@ import band.gosrock.api.common.UserUtils; import band.gosrock.api.ticketItem.dto.request.CreateTicketOptionRequest; -import band.gosrock.api.ticketItem.dto.response.TicketOptionResponse; +import band.gosrock.api.ticketItem.dto.response.OptionGroupResponse; import band.gosrock.api.ticketItem.mapper.TicketOptionMapper; import band.gosrock.common.annotation.UseCase; import band.gosrock.domain.common.vo.Money; @@ -30,7 +30,7 @@ public class CreateTicketOptionUseCase { private final HostService hostService; @Transactional - public TicketOptionResponse execute( + public OptionGroupResponse execute( CreateTicketOptionRequest createTicketOptionRequest, Long eventId) { User user = userUtils.getCurrentUser(); Event event = eventAdaptor.findById(eventId); @@ -44,6 +44,6 @@ public TicketOptionResponse execute( .createTicketOption( Money.wons(createTicketOptionRequest.getAdditionalPrice())); OptionGroup ticketOptionResult = ticketOptionService.createTicketOption(ticketOption); - return TicketOptionResponse.from(ticketOptionResult); + return OptionGroupResponse.from(ticketOptionResult); } } diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/GetEventTicketItemsUseCase.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/GetEventTicketItemsUseCase.java new file mode 100644 index 00000000..88dc2ad0 --- /dev/null +++ b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/GetEventTicketItemsUseCase.java @@ -0,0 +1,19 @@ +package band.gosrock.api.ticketItem.service; + + +import band.gosrock.api.ticketItem.dto.response.GetEventTicketItemsResponse; +import band.gosrock.api.ticketItem.mapper.TicketItemMapper; +import band.gosrock.common.annotation.UseCase; +import lombok.RequiredArgsConstructor; + +@UseCase +@RequiredArgsConstructor +public class GetEventTicketItemsUseCase { + + private final TicketItemMapper ticketItemMapper; + + public GetEventTicketItemsResponse execute(Long eventId) { + + return ticketItemMapper.toGetEventTicketItemsResponse(eventId); + } +} diff --git a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/GetTicketOptionsUseCase.java b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/GetTicketOptionsUseCase.java index 2da51233..f233642f 100644 --- a/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/GetTicketOptionsUseCase.java +++ b/DuDoong-Api/src/main/java/band/gosrock/api/ticketItem/service/GetTicketOptionsUseCase.java @@ -1,7 +1,7 @@ package band.gosrock.api.ticketItem.service; -import band.gosrock.api.ticketItem.dto.response.GetTicketItemOptionResponse; +import band.gosrock.api.ticketItem.dto.response.GetTicketItemOptionsResponse; import band.gosrock.api.ticketItem.mapper.TicketOptionMapper; import band.gosrock.common.annotation.UseCase; import lombok.RequiredArgsConstructor; @@ -12,7 +12,7 @@ public class GetTicketOptionsUseCase { private final TicketOptionMapper ticketOptionMapper; - public GetTicketItemOptionResponse execute(Long eventId, Long ticketItemId) { + public GetTicketItemOptionsResponse execute(Long eventId, Long ticketItemId) { return ticketOptionMapper.toGetTicketItemOptionResponse(eventId, ticketItemId); } diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/ticket_item/adaptor/OptionGroupAdaptor.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/ticket_item/adaptor/OptionGroupAdaptor.java index fe99b290..490294e3 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/ticket_item/adaptor/OptionGroupAdaptor.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/ticket_item/adaptor/OptionGroupAdaptor.java @@ -3,9 +3,9 @@ import band.gosrock.common.annotation.Adaptor; import band.gosrock.domain.domains.ticket_item.domain.OptionGroup; +import band.gosrock.domain.domains.ticket_item.domain.OptionGroupStatus; import band.gosrock.domain.domains.ticket_item.exception.OptionGroupNotFoundException; import band.gosrock.domain.domains.ticket_item.repository.OptionGroupRepository; -import java.util.List; import lombok.RequiredArgsConstructor; @Adaptor @@ -16,15 +16,11 @@ public class OptionGroupAdaptor { public OptionGroup queryOptionGroup(Long optionGroupId) { return optionGroupRepository - .findById(optionGroupId) + .findByIdAndOptionGroupStatus(optionGroupId, OptionGroupStatus.VALID) .orElseThrow(() -> OptionGroupNotFoundException.EXCEPTION); } public OptionGroup save(OptionGroup optionGroup) { return optionGroupRepository.save(optionGroup); } - - public List findAllByIds(List ids) { - return optionGroupRepository.findAllById(ids); - } } diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/ticket_item/adaptor/TicketItemAdaptor.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/ticket_item/adaptor/TicketItemAdaptor.java index c501b3df..23873339 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/ticket_item/adaptor/TicketItemAdaptor.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/ticket_item/adaptor/TicketItemAdaptor.java @@ -3,8 +3,10 @@ import band.gosrock.common.annotation.Adaptor; import band.gosrock.domain.domains.ticket_item.domain.TicketItem; +import band.gosrock.domain.domains.ticket_item.domain.TicketItemStatus; import band.gosrock.domain.domains.ticket_item.exception.TicketItemNotFoundException; import band.gosrock.domain.domains.ticket_item.repository.TicketItemRepository; +import java.util.List; import lombok.RequiredArgsConstructor; @Adaptor @@ -15,10 +17,15 @@ public class TicketItemAdaptor { public TicketItem queryTicketItem(Long ticketItemId) { return ticketItemRepository - .findById(ticketItemId) + .findByIdAndTicketItemStatus(ticketItemId, TicketItemStatus.VALID) .orElseThrow(() -> TicketItemNotFoundException.EXCEPTION); } + public List findAllByEventId(Long eventId) { + return ticketItemRepository.findAllByEvent_IdAndTicketItemStatus( + eventId, TicketItemStatus.VALID); + } + public TicketItem save(TicketItem ticketItem) { return ticketItemRepository.save(ticketItem); } diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/ticket_item/domain/OptionGroup.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/ticket_item/domain/OptionGroup.java index d05d7826..c5735834 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/ticket_item/domain/OptionGroup.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/ticket_item/domain/OptionGroup.java @@ -15,6 +15,7 @@ import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; +import org.hibernate.annotations.ColumnDefault; @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @@ -43,6 +44,11 @@ public class OptionGroup { // 필수 응답 여부 private Boolean isEssential; + // 상태 + @Enumerated(EnumType.STRING) + @ColumnDefault(value = "'VALID'") + private OptionGroupStatus optionGroupStatus = OptionGroupStatus.VALID; + @OneToMany(cascade = CascadeType.ALL, mappedBy = "optionGroup") private final List