From f2fe52091b948ea18a156b7fbd8003e85d5b756e Mon Sep 17 00:00:00 2001 From: SCY Date: Sun, 2 Mar 2025 15:58:08 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=B0=B8=EC=97=AC=20=EC=8B=9C=20?= =?UTF-8?q?=EB=AC=BC=ED=92=88=20=EA=B0=9C=EC=88=98=20=ED=95=84=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20(#703)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 참여 물품 개수 필드 추가 * feat: 참여 시 개수 함께 요청 * feat: 참여 취소 시 요청 개수 전체 취소 * feat: 참여자 목록 조회 시 참여 개수 및 가격 필드 추가 * feat: 공모 생성 시 총대의 구매 개수 필드 추가 (이전 버전 고려) * feat: 이전 버전을 고려하여 요청 DTO에서 null 값 관리 * test: 네이밍 구체화 및 문서화 작업 * test: 참여 기능 동시성 테스트 추가 --- .../offering/exception/OfferingErrorCode.java | 1 + .../repository/entity/OfferingEntity.java | 8 +- .../offering/service/OfferingService.java | 16 +- .../service/dto/OfferingSaveRequest.java | 12 +- .../domain/OfferingMembers.java | 9 +- .../exception/OfferingMemberErrorCode.java | 4 +- .../entity/OfferingMemberEntity.java | 11 +- .../service/OfferingMemberService.java | 17 +- .../service/dto/ParticipantResponse.java | 16 +- .../service/dto/ParticipantResponseItem.java | 12 +- .../service/dto/ParticipationRequest.java | 10 +- .../service/dto/ProposerResponseItem.java | 12 +- backend/src/main/resources/data.sql | 878 +++++++++--------- .../global/domain/OfferingMemberFixture.java | 8 +- .../integration/OfferingIntegrationTest.java | 74 +- .../offering/service/OfferingServiceTest.java | 3 +- .../OfferingMemberIntegrationTest.java | 110 ++- .../OfferingMemberServiceConcurrencyTest.java | 4 +- 18 files changed, 707 insertions(+), 498 deletions(-) diff --git a/backend/src/main/java/com/zzang/chongdae/offering/exception/OfferingErrorCode.java b/backend/src/main/java/com/zzang/chongdae/offering/exception/OfferingErrorCode.java index 4990aec94..6a95b41fe 100644 --- a/backend/src/main/java/com/zzang/chongdae/offering/exception/OfferingErrorCode.java +++ b/backend/src/main/java/com/zzang/chongdae/offering/exception/OfferingErrorCode.java @@ -25,6 +25,7 @@ public enum OfferingErrorCode implements ErrorResponse { CANNOT_UPDATE_LESS_THAN_CURRENT_COUNT(BAD_REQUEST, "총 인원은 참여 인원수 미만으로 수정할 수 없습니다."), CANNOT_UPDATE_BEFORE_NOW_MEETING_DATE(BAD_REQUEST, "거래 날짜는 오늘보다 이전일 수 없습니다."), CANNOT_MEETING_DATE_BEFORE_THAN_TODAY(BAD_REQUEST, "거래 날짜는 오늘부터 설정할 수 있습니다."), + INVALID_MY_COUNT(BAD_REQUEST, "총대의 구매 개수는 총 개수보다 적어야 합니다."), ; private final HttpStatus status; diff --git a/backend/src/main/java/com/zzang/chongdae/offering/repository/entity/OfferingEntity.java b/backend/src/main/java/com/zzang/chongdae/offering/repository/entity/OfferingEntity.java index 2009912ab..4ded2caae 100644 --- a/backend/src/main/java/com/zzang/chongdae/offering/repository/entity/OfferingEntity.java +++ b/backend/src/main/java/com/zzang/chongdae/offering/repository/entity/OfferingEntity.java @@ -118,14 +118,14 @@ public OfferingEntity(MemberEntity member, String title, String description, Str originPrice, discountRate, offeringStatus, roomStatus, false); } - public void participate() { - currentCount++; + public void participate(int participationCount) { + currentCount += participationCount; OfferingStatus offeringStatus = toOfferingJoinedCount().decideOfferingStatus(); updateOfferingStatus(offeringStatus); } - public void leave() { - currentCount--; + public void leave(int participationCount) { + currentCount -= participationCount; OfferingStatus offeringStatus = toOfferingJoinedCount().decideOfferingStatus(); updateOfferingStatus(offeringStatus); } diff --git a/backend/src/main/java/com/zzang/chongdae/offering/service/OfferingService.java b/backend/src/main/java/com/zzang/chongdae/offering/service/OfferingService.java index 94c7214f7..b1f472d3d 100644 --- a/backend/src/main/java/com/zzang/chongdae/offering/service/OfferingService.java +++ b/backend/src/main/java/com/zzang/chongdae/offering/service/OfferingService.java @@ -131,16 +131,22 @@ private void validateIsProposer(OfferingEntity offering, MemberEntity member) { @WriterDatabase public Long saveOffering(OfferingSaveRequest request, MemberEntity member) { OfferingEntity offering = request.toEntity(member); - validateMeetingDate(offering.getMeetingDate()); + validateOffering(request, offering); OfferingEntity saved = offeringRepository.save(offering); - OfferingMemberEntity offeringMember = new OfferingMemberEntity(member, saved, OfferingMemberRole.PROPOSER); + OfferingMemberEntity offeringMember = new OfferingMemberEntity(member, saved, OfferingMemberRole.PROPOSER, + request.myCount()); offeringMemberRepository.save(offeringMember); eventPublisher.publishEvent(new SaveOfferingEvent(this, saved)); return saved.getId(); } + private void validateOffering(OfferingSaveRequest request, OfferingEntity offering) { + validateMeetingDate(offering.getMeetingDate()); + validateCount(request.myCount(), request.totalCount()); + } + private void validateMeetingDate(LocalDateTime offeringMeetingDateTime) { LocalDate thresholdDate = LocalDate.now(clock); LocalDate targetDate = offeringMeetingDateTime.toLocalDate(); @@ -149,6 +155,12 @@ private void validateMeetingDate(LocalDateTime offeringMeetingDateTime) { } } + private void validateCount(Integer myCount, Integer totalCount) { + if (myCount != null && myCount >= totalCount) { + throw new MarketException(OfferingErrorCode.INVALID_MY_COUNT); + } + } + public OfferingProductImageResponse uploadProductImage(MultipartFile image) { String imageUrl = storageService.uploadFile(image); return new OfferingProductImageResponse(imageUrl); diff --git a/backend/src/main/java/com/zzang/chongdae/offering/service/dto/OfferingSaveRequest.java b/backend/src/main/java/com/zzang/chongdae/offering/service/dto/OfferingSaveRequest.java index c8459026e..a346ed618 100644 --- a/backend/src/main/java/com/zzang/chongdae/offering/service/dto/OfferingSaveRequest.java +++ b/backend/src/main/java/com/zzang/chongdae/offering/service/dto/OfferingSaveRequest.java @@ -9,6 +9,7 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import java.time.LocalDateTime; +import java.util.Objects; public record OfferingSaveRequest(@NotBlank String title, @@ -37,14 +38,21 @@ public record OfferingSaveRequest(@NotBlank LocalDateTime meetingDate, @NotNull - String description) { + String description, + + Integer myCount) { public OfferingEntity toEntity(MemberEntity member) { OfferingPrice offeringPrice = new OfferingPrice(totalCount, totalPrice, originPrice); Double discountRate = offeringPrice.calculateDiscountRate(); return new OfferingEntity(member, title, description, thumbnailUrl, productUrl, meetingDate, meetingAddress, - meetingAddressDetail, meetingAddressDong, totalCount, 1, + meetingAddressDetail, meetingAddressDong, totalCount, Objects.requireNonNullElse(myCount, 1), totalPrice, originPrice, discountRate, OfferingStatus.AVAILABLE, CommentRoomStatus.GROUPING); } + + @Override + public Integer myCount() { + return Objects.requireNonNullElse(myCount, 1); + } } diff --git a/backend/src/main/java/com/zzang/chongdae/offeringmember/domain/OfferingMembers.java b/backend/src/main/java/com/zzang/chongdae/offeringmember/domain/OfferingMembers.java index d02a3cf7a..7b41769bf 100644 --- a/backend/src/main/java/com/zzang/chongdae/offeringmember/domain/OfferingMembers.java +++ b/backend/src/main/java/com/zzang/chongdae/offeringmember/domain/OfferingMembers.java @@ -1,7 +1,6 @@ package com.zzang.chongdae.offeringmember.domain; import com.zzang.chongdae.global.exception.MarketException; -import com.zzang.chongdae.member.repository.entity.MemberEntity; import com.zzang.chongdae.offeringmember.exception.OfferingMemberErrorCode; import com.zzang.chongdae.offeringmember.repository.entity.OfferingMemberEntity; import java.util.List; @@ -14,18 +13,16 @@ public class OfferingMembers { private final List offeringMembers; - public MemberEntity getProposer() { + public OfferingMemberEntity getProposer() { return offeringMembers.stream() .filter(OfferingMemberEntity::isProposer) .findFirst() - .orElseThrow(() -> new MarketException(OfferingMemberErrorCode.PROPOSER_NOT_FOUND)) - .getMember(); + .orElseThrow(() -> new MarketException(OfferingMemberErrorCode.PROPOSER_NOT_FOUND)); } - public List getParticipants() { + public List getParticipants() { return offeringMembers.stream() .filter(OfferingMemberEntity::isParticipant) - .map(OfferingMemberEntity::getMember) .toList(); } } diff --git a/backend/src/main/java/com/zzang/chongdae/offeringmember/exception/OfferingMemberErrorCode.java b/backend/src/main/java/com/zzang/chongdae/offeringmember/exception/OfferingMemberErrorCode.java index dc47aa77e..519677abc 100644 --- a/backend/src/main/java/com/zzang/chongdae/offeringmember/exception/OfferingMemberErrorCode.java +++ b/backend/src/main/java/com/zzang/chongdae/offeringmember/exception/OfferingMemberErrorCode.java @@ -18,7 +18,9 @@ public enum OfferingMemberErrorCode implements ErrorResponse { PROPOSER_NOT_FOUND(BAD_REQUEST, "총대를 찾을 수 없습니다."), NOT_FOUND(BAD_REQUEST, "해당 공모의 총대 혹은 참여자가 아닙니다."), CANNOT_CANCEL_PROPOSER(BAD_REQUEST, "총대는 참여를 취소할 수 없습니다."), - CANNOT_CANCEL_IN_PROGRESS(BAD_REQUEST, "진행중인 공모는 참여를 취소할 수 없습니다."); + CANNOT_CANCEL_IN_PROGRESS(BAD_REQUEST, "진행중인 공모는 참여를 취소할 수 없습니다."), + INVALID_PARTICIPATION_COUNT(BAD_REQUEST, "총 수량을 넘어서 참여할 수 없습니다."), + ; private final HttpStatus status; private final String message; diff --git a/backend/src/main/java/com/zzang/chongdae/offeringmember/repository/entity/OfferingMemberEntity.java b/backend/src/main/java/com/zzang/chongdae/offeringmember/repository/entity/OfferingMemberEntity.java index 0852b858d..6c5215578 100644 --- a/backend/src/main/java/com/zzang/chongdae/offeringmember/repository/entity/OfferingMemberEntity.java +++ b/backend/src/main/java/com/zzang/chongdae/offeringmember/repository/entity/OfferingMemberEntity.java @@ -14,6 +14,7 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Positive; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.EqualsAndHashCode; @@ -28,6 +29,8 @@ @Entity public class OfferingMemberEntity extends BaseTimeEntity { + private static final int DEFAULT_PARTICIPATION_COUNT = 1; + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @@ -43,8 +46,12 @@ public class OfferingMemberEntity extends BaseTimeEntity { @Enumerated(EnumType.STRING) private OfferingMemberRole role; - public OfferingMemberEntity(MemberEntity member, OfferingEntity offering, OfferingMemberRole role) { - this(null, member, offering, role); + @NotNull + @Positive + private Integer participationCount = DEFAULT_PARTICIPATION_COUNT; + + public OfferingMemberEntity(MemberEntity member, OfferingEntity offering, OfferingMemberRole role, Integer count) { + this(null, member, offering, role, count); } public boolean isProposer() { diff --git a/backend/src/main/java/com/zzang/chongdae/offeringmember/service/OfferingMemberService.java b/backend/src/main/java/com/zzang/chongdae/offeringmember/service/OfferingMemberService.java index 7453349c9..0dc387a62 100644 --- a/backend/src/main/java/com/zzang/chongdae/offeringmember/service/OfferingMemberService.java +++ b/backend/src/main/java/com/zzang/chongdae/offeringmember/service/OfferingMemberService.java @@ -35,20 +35,21 @@ public class OfferingMemberService { public Long participate(ParticipationRequest request, MemberEntity member) { OfferingEntity offering = offeringRepository.findByIdWithLock(request.offeringId()) .orElseThrow(() -> new MarketException(OfferingErrorCode.NOT_FOUND)); - validateParticipate(offering, member); + validateParticipate(offering, member, request.participationCount()); OfferingMemberEntity offeringMember = new OfferingMemberEntity( - member, offering, OfferingMemberRole.PARTICIPANT); + member, offering, OfferingMemberRole.PARTICIPANT, request.participationCount()); OfferingMemberEntity saved = offeringMemberRepository.save(offeringMember); - offering.participate(); + offering.participate(request.participationCount()); eventPublisher.publishEvent(new ParticipateEvent(this, saved)); return saved.getId(); } - private void validateParticipate(OfferingEntity offering, MemberEntity member) { + private void validateParticipate(OfferingEntity offering, MemberEntity member, int participationCount) { validateClosed(offering); validateDuplicate(offering, member); + validateParticipationCount(offering, participationCount); } private void validateClosed(OfferingEntity offering) { @@ -63,6 +64,12 @@ private void validateDuplicate(OfferingEntity offering, MemberEntity member) { } } + private void validateParticipationCount(OfferingEntity offering, int participationCount) { + if (offering.getCurrentCount() + participationCount > offering.getTotalCount()) { + throw new MarketException(OfferingMemberErrorCode.INVALID_PARTICIPATION_COUNT); + } + } + @WriterDatabase @Transactional public void cancelParticipate(Long offeringId, MemberEntity member) { @@ -73,7 +80,7 @@ public void cancelParticipate(Long offeringId, MemberEntity member) { validateCancel(offeringMember); offeringMemberRepository.delete(offeringMember); - offering.leave(); + offering.leave(offeringMember.getParticipationCount()); eventPublisher.publishEvent(new CancelParticipateEvent(this, offeringMember)); } diff --git a/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ParticipantResponse.java b/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ParticipantResponse.java index 51a77a4f3..139ce31d0 100644 --- a/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ParticipantResponse.java +++ b/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ParticipantResponse.java @@ -1,8 +1,8 @@ package com.zzang.chongdae.offeringmember.service.dto; -import com.zzang.chongdae.member.repository.entity.MemberEntity; import com.zzang.chongdae.offering.repository.entity.OfferingEntity; import com.zzang.chongdae.offeringmember.domain.OfferingMembers; +import com.zzang.chongdae.offeringmember.repository.entity.OfferingMemberEntity; import java.util.List; public record ParticipantResponse(ProposerResponseItem proposer, @@ -12,14 +12,16 @@ public record ParticipantResponse(ProposerResponseItem proposer, ) { public static ParticipantResponse from(OfferingEntity offering, OfferingMembers offeringMembers) { - MemberEntity proposer = offeringMembers.getProposer(); - List participants = offeringMembers.getParticipants(); - ProposerResponseItem proposerResponse = new ProposerResponseItem(proposer); + int pricePerOne = offering.toOfferingPrice().calculateDividedPrice(); + + OfferingMemberEntity proposer = offeringMembers.getProposer(); + List participants = offeringMembers.getParticipants(); + ProposerResponseItem proposerResponse = new ProposerResponseItem(proposer, pricePerOne); List participantsResponse = participants.stream() - .map(ParticipantResponseItem::new) + .map(participant -> new ParticipantResponseItem(participant, pricePerOne)) .toList(); ParticipantCountResponseItem countResponse = new ParticipantCountResponseItem(offering); - Integer priceResponse = offering.toOfferingPrice().calculateDividedPrice(); - return new ParticipantResponse(proposerResponse, participantsResponse, countResponse, priceResponse); + + return new ParticipantResponse(proposerResponse, participantsResponse, countResponse, pricePerOne); } } diff --git a/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ParticipantResponseItem.java b/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ParticipantResponseItem.java index c2a348042..5c438c0eb 100644 --- a/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ParticipantResponseItem.java +++ b/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ParticipantResponseItem.java @@ -1,10 +1,14 @@ package com.zzang.chongdae.offeringmember.service.dto; -import com.zzang.chongdae.member.repository.entity.MemberEntity; +import com.zzang.chongdae.offeringmember.repository.entity.OfferingMemberEntity; -public record ParticipantResponseItem(String nickname) { +public record ParticipantResponseItem(String nickname, + Integer count, + Integer price) { - public ParticipantResponseItem(MemberEntity offeringMember) { - this(offeringMember.getNickname()); + public ParticipantResponseItem(OfferingMemberEntity offeringMember, int pricePerOne) { + this(offeringMember.getMember().getNickname(), + offeringMember.getParticipationCount(), + offeringMember.getParticipationCount() * pricePerOne); } } diff --git a/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ParticipationRequest.java b/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ParticipationRequest.java index cd11ed14e..11667ea9e 100644 --- a/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ParticipationRequest.java +++ b/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ParticipationRequest.java @@ -1,7 +1,15 @@ package com.zzang.chongdae.offeringmember.service.dto; import jakarta.validation.constraints.NotNull; +import java.util.Objects; public record ParticipationRequest(@NotNull - Long offeringId) { + Long offeringId, + + Integer participationCount) { + + @Override + public Integer participationCount() { + return Objects.requireNonNullElse(participationCount, 1); + } } diff --git a/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ProposerResponseItem.java b/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ProposerResponseItem.java index 615bac945..03976724f 100644 --- a/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ProposerResponseItem.java +++ b/backend/src/main/java/com/zzang/chongdae/offeringmember/service/dto/ProposerResponseItem.java @@ -1,10 +1,14 @@ package com.zzang.chongdae.offeringmember.service.dto; -import com.zzang.chongdae.member.repository.entity.MemberEntity; +import com.zzang.chongdae.offeringmember.repository.entity.OfferingMemberEntity; -public record ProposerResponseItem(String nickname) { +public record ProposerResponseItem(String nickname, + Integer count, + Integer price) { - public ProposerResponseItem(MemberEntity member) { - this(member.getNickname()); + public ProposerResponseItem(OfferingMemberEntity offeringMember, int pricePerOne) { + this(offeringMember.getMember().getNickname(), + offeringMember.getParticipationCount(), + offeringMember.getParticipationCount() * pricePerOne); } } diff --git a/backend/src/main/resources/data.sql b/backend/src/main/resources/data.sql index 25a7e462a..660519e07 100644 --- a/backend/src/main/resources/data.sql +++ b/backend/src/main/resources/data.sql @@ -422,446 +422,446 @@ VALUES (9, 9, 50000, 7056, 21.3, '2024-04-29 00:00:00', '2024-04-29 00:00:00', 1 'https://github.com/user-attachments/assets/c6b07e2f-3c7a-44f9-8d3c-a3431866d8f3', '이불 공구 참가', 'FULL', 'GROUPING'); -INSERT INTO OFFERING_MEMBER (OFFERING_ID, MEMBER_ID, ROLE, CREATED_AT, UPDATED_AT) -VALUES (1, 1, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (2, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (3, 3, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (4, 4, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (5, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (6, 1, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (7, 1, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (8, 1, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (9, 1, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (10, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (11, 6, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (12, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (13, 3, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (14, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (15, 4, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (16, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (17, 3, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (18, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (19, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (20, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (21, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (22, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (23, 6, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (24, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (25, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (26, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (27, 6, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (28, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (29, 6, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (30, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (31, 6, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (32, 3, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (33, 6, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (34, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (35, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (36, 4, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (37, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (38, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (39, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (40, 3, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (41, 3, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (42, 4, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (43, 1, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (44, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (45, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (46, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (47, 1, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (48, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (49, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (50, 6, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (51, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (52, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (53, 6, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (54, 3, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (55, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (56, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (57, 6, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (58, 4, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (59, 4, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (60, 3, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (61, 6, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (62, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (63, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (64, 3, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (65, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (66, 1, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (67, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (68, 3, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (69, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (70, 6, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (71, 3, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (72, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (73, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (74, 3, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (75, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (76, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (77, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (78, 1, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (79, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (80, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (81, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (82, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (83, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (84, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (85, 6, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (86, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (87, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (88, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (89, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (90, 4, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (91, 1, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (92, 6, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (93, 7, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (94, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (95, 1, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (96, 1, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (97, 4, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (98, 2, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (99, 5, 'PROPOSER', '2024-07-15 00:00:00', '2024-07-15 00:00:00'), +INSERT INTO OFFERING_MEMBER (OFFERING_ID, MEMBER_ID, ROLE, PARTICIPATION_COUNT, CREATED_AT, UPDATED_AT) +VALUES (1, 1, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (2, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (3, 3, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (4, 4, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (5, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (6, 1, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (7, 1, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (8, 1, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (9, 1, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (10, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (11, 6, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (12, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (13, 3, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (14, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (15, 4, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (16, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (17, 3, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (18, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (19, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (20, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (21, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (22, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (23, 6, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (24, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (25, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (26, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (27, 6, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (28, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (29, 6, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (30, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (31, 6, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (32, 3, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (33, 6, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (34, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (35, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (36, 4, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (37, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (38, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (39, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (40, 3, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (41, 3, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (42, 4, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (43, 1, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (44, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (45, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (46, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (47, 1, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (48, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (49, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (50, 6, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (51, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (52, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (53, 6, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (54, 3, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (55, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (56, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (57, 6, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (58, 4, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (59, 4, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (60, 3, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (61, 6, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (62, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (63, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (64, 3, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (65, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (66, 1, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (67, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (68, 3, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (69, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (70, 6, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (71, 3, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (72, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (73, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (74, 3, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (75, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (76, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (77, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (78, 1, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (79, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (80, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (81, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (82, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (83, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (84, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (85, 6, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (86, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (87, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (88, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (89, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (90, 4, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (91, 1, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (92, 6, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (93, 7, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (94, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (95, 1, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (96, 1, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (97, 4, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (98, 2, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), + (99, 5, 'PROPOSER', 1, '2024-07-15 00:00:00', '2024-07-15 00:00:00'), - (1, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (1, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (1, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (1, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (1, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (1, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (1, 8, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (1, 9, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (2, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (2, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (2, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (3, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (3, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (3, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (3, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (3, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (4, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (5, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (6, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (6, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (6, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (6, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (6, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (8, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (9, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (9, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (9, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (9, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (9, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (10, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (10, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (10, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (10, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (11, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (11, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (11, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (11, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (11, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (12, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (12, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (12, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (12, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (12, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (12, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (12, 8, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (12, 9, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (13, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (13, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (13, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (13, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (13, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (13, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (13, 8, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (14, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (14, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (14, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (15, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (15, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (15, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (15, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (15, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (16, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (16, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (16, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (16, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (17, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (17, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (17, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (17, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (17, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (17, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (17, 8, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (18, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (18, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (18, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (18, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (19, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (19, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (19, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (19, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (19, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (20, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (20, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (20, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (20, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (20, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (20, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (20, 8, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (20, 9, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (21, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (22, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (23, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (23, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (24, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (24, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (25, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (25, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (25, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (25, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (25, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (25, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (25, 8, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (26, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (27, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (27, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (27, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (28, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (28, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (28, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (28, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (28, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (28, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (30, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (30, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (30, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (30, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (30, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (30, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (30, 8, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (31, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (31, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (32, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (32, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (32, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (32, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (32, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (32, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (33, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (35, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (35, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (35, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (35, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (35, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (35, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (35, 8, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (36, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (36, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (37, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (37, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (37, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (37, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (38, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (38, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (38, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (38, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (38, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (38, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (39, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (39, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (39, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (39, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (39, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (40, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (42, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (42, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (42, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (42, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (42, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (43, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (43, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (43, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (43, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (43, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (44, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (44, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (44, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (44, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (44, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (44, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (44, 8, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (45, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (45, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (45, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (45, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (45, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (45, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (46, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (46, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (47, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (47, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (47, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (47, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (48, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (48, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (49, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (49, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (49, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (49, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (49, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (50, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (50, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (50, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (50, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (52, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (52, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (53, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (54, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (54, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (54, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (54, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (55, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (56, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (56, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (56, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (56, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (56, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (56, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (57, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (57, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (58, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (61, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (61, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (61, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (61, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (62, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (62, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (62, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (62, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (62, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (63, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (63, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (63, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (64, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (64, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (64, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (64, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (64, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (64, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (65, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (65, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (65, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (65, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (68, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (68, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (68, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (68, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (69, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (71, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (71, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (72, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (72, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (72, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (72, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (72, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (73, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (73, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (73, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (74, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (74, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (74, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (74, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (74, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (74, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (74, 8, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (74, 9, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (75, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (76, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (77, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (77, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (77, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (78, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (78, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (78, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (78, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (78, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (78, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (79, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (79, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (79, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (80, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (81, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (81, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (81, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (81, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (82, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (83, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (84, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (84, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (84, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (84, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (84, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (85, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (86, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (86, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (86, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (86, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (86, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (87, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (87, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (87, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (87, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (88, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (88, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (88, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (88, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (88, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (88, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (89, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (89, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (89, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (90, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (90, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (90, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (90, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (91, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (91, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (91, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (91, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (92, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (92, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (92, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (93, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (93, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (94, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (94, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (94, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (94, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (94, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (94, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (95, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (96, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (96, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (96, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (97, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (97, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (97, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (97, 5, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (97, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (97, 7, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (97, 8, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (97, 9, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (98, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (98, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (98, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (99, 1, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (99, 2, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (99, 3, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (99, 4, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'), - (99, 6, 'PARTICIPANT', '2024-07-16 00:00:00', '2024-07-16 00:00:00'); + (1, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (1, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (1, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (1, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (1, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (1, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (1, 8, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (1, 9, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (2, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (2, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (2, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (3, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (3, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (3, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (3, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (3, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (4, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (5, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (6, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (6, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (6, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (6, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (6, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (8, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (9, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (9, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (9, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (9, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (9, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (10, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (10, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (10, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (10, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (11, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (11, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (11, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (11, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (11, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (12, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (12, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (12, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (12, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (12, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (12, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (12, 8, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (12, 9, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (13, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (13, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (13, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (13, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (13, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (13, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (13, 8, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (14, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (14, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (14, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (15, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (15, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (15, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (15, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (15, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (16, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (16, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (16, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (16, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (17, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (17, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (17, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (17, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (17, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (17, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (17, 8, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (18, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (18, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (18, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (18, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (19, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (19, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (19, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (19, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (19, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (20, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (20, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (20, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (20, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (20, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (20, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (20, 8, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (20, 9, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (21, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (22, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (23, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (23, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (24, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (24, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (25, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (25, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (25, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (25, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (25, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (25, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (25, 8, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (26, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (27, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (27, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (27, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (28, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (28, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (28, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (28, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (28, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (28, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (30, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (30, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (30, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (30, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (30, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (30, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (30, 8, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (31, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (31, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (32, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (32, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (32, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (32, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (32, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (32, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (33, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (35, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (35, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (35, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (35, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (35, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (35, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (35, 8, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (36, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (36, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (37, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (37, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (37, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (37, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (38, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (38, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (38, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (38, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (38, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (38, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (39, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (39, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (39, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (39, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (39, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (40, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (42, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (42, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (42, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (42, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (42, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (43, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (43, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (43, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (43, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (43, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (44, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (44, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (44, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (44, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (44, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (44, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (44, 8, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (45, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (45, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (45, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (45, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (45, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (45, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (46, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (46, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (47, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (47, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (47, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (47, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (48, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (48, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (49, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (49, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (49, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (49, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (49, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (50, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (50, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (50, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (50, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (52, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (52, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (53, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (54, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (54, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (54, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (54, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (55, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (56, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (56, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (56, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (56, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (56, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (56, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (57, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (57, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (58, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (61, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (61, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (61, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (61, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (62, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (62, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (62, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (62, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (62, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (63, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (63, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (63, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (64, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (64, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (64, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (64, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (64, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (64, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (65, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (65, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (65, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (65, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (68, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (68, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (68, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (68, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (69, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (71, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (71, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (72, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (72, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (72, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (72, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (72, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (73, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (73, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (73, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (74, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (74, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (74, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (74, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (74, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (74, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (74, 8, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (74, 9, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (75, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (76, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (77, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (77, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (77, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (78, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (78, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (78, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (78, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (78, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (78, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (79, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (79, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (79, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (80, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (81, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (81, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (81, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (81, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (82, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (83, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (84, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (84, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (84, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (84, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (84, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (85, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (86, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (86, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (86, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (86, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (86, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (87, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (87, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (87, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (87, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (88, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (88, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (88, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (88, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (88, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (88, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (89, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (89, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (89, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (90, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (90, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (90, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (90, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (91, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (91, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (91, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (91, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (92, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (92, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (92, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (93, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (93, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (94, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (94, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (94, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (94, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (94, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (94, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (95, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (96, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (96, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (96, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (97, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (97, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (97, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (97, 5, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (97, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (97, 7, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (97, 8, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (97, 9, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (98, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (98, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (98, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (99, 1, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (99, 2, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (99, 3, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (99, 4, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'), + (99, 6, 'PARTICIPANT', 1, '2024-07-16 00:00:00', '2024-07-16 00:00:00'); INSERT INTO COMMENT (OFFERING_ID, MEMBER_ID, CONTENT, CREATED_AT, UPDATED_AT) VALUES (1, 2, '안녕하세요.', '2024-07-16 09:01:00', '2024-07-16 09:01:00'), diff --git a/backend/src/test/java/com/zzang/chongdae/global/domain/OfferingMemberFixture.java b/backend/src/test/java/com/zzang/chongdae/global/domain/OfferingMemberFixture.java index 4f45a704c..4f46ddd92 100644 --- a/backend/src/test/java/com/zzang/chongdae/global/domain/OfferingMemberFixture.java +++ b/backend/src/test/java/com/zzang/chongdae/global/domain/OfferingMemberFixture.java @@ -23,7 +23,8 @@ public OfferingMemberEntity createProposer(MemberEntity member, OfferingEntity o OfferingMemberEntity offeringMember = new OfferingMemberEntity( member, offering, - OfferingMemberRole.PROPOSER + OfferingMemberRole.PROPOSER, + 1 ); return offeringMemberRepository.save(offeringMember); } @@ -33,11 +34,12 @@ public OfferingMemberEntity createParticipant(MemberEntity member, OfferingEntit OfferingMemberEntity offeringMember = new OfferingMemberEntity( member, offering, - OfferingMemberRole.PARTICIPANT + OfferingMemberRole.PARTICIPANT, + 1 ); OfferingMemberEntity result = offeringMemberRepository.save(offeringMember); offering = offeringRepository.findById(offering.getId()).orElseThrow(); - offering.participate(); + offering.participate(1); return result; } } diff --git a/backend/src/test/java/com/zzang/chongdae/offering/integration/OfferingIntegrationTest.java b/backend/src/test/java/com/zzang/chongdae/offering/integration/OfferingIntegrationTest.java index 3801b387a..5743343b6 100644 --- a/backend/src/test/java/com/zzang/chongdae/offering/integration/OfferingIntegrationTest.java +++ b/backend/src/test/java/com/zzang/chongdae/offering/integration/OfferingIntegrationTest.java @@ -473,7 +473,8 @@ class CreateOffering { fieldWithPath("meetingAddressDetail").description("모집 상세 주소"), fieldWithPath("meetingAddressDong").description("모집 동 주소"), fieldWithPath("meetingDate").description("모집 종료 시간 (필수)"), - fieldWithPath("description").description("내용 (필수)") + fieldWithPath("description").description("내용 (필수)"), + fieldWithPath("myCount").description("총대 구매 개수") ); ResourceSnippetParameters successSnippets = builder() .summary("공모 작성") @@ -511,7 +512,8 @@ void should_createOffering_when_givenOfferingCreateRequest() { "상세주소아파트", "구의동", LocalDateTime.now(clock).plusDays(1), - "내용입니다." + "내용입니다.", + 1 ); given(spec).log().all() @@ -538,7 +540,8 @@ void should_createOffering_when_givenOfferingWithoutOriginPriceCreateRequest() { "상세주소아파트", "구의동", LocalDateTime.now(clock).plusDays(1), - "내용입니다." + "내용입니다.", + 1 ); given(spec).log().all() @@ -565,6 +568,7 @@ void should_throwException_when_emptyValue() { null, null, null, + null, null ); @@ -592,7 +596,8 @@ void should_throwException_when_dividedPrice() { "상세주소아파트", "구의동", LocalDateTime.parse("2024-10-11T10:00:00"), - "내용입니다." + "내용입니다.", + 1 ); given(spec).log().all() @@ -619,7 +624,8 @@ void should_throwException_when_overMaximumTotalCount() { "상세주소아파트", "구의동", LocalDateTime.parse("2024-10-11T10:00:00"), - "내용입니다." + "내용입니다.", + 1 ); given(spec).log().all() @@ -646,7 +652,8 @@ void should_throwException_when_meetingDateBeforeTomorrow() { "상세주소아파트", "구의동", LocalDateTime.now(clock).minusDays(1), - "내용입니다." + "내용입니다.", + 1 ); given(spec).log().all() @@ -658,6 +665,61 @@ void should_throwException_when_meetingDateBeforeTomorrow() { .then().log().all() .statusCode(400); } + + @DisplayName("총대가 가질 개수를 총 개수보다 많거나 같게 요청하는 경우 예외가 발생한다.") + @Test + void should_throwException_when_myCountEqualOrMoreThanTotalCount() { + OfferingSaveRequest request = new OfferingSaveRequest( + "공모 제목", + "www.naver.com", + "www.naver.com/favicon.ico", + 10, + 10000, + 2000, + "서울특별시 광진구 구의강변로 3길 11", + "상세주소아파트", + "구의동", + LocalDateTime.now(clock).plusDays(1), + "내용입니다.", + 10 + ); + + given(spec).log().all() + .filter(document("create-offering-fail-with-invalid-my-count", resource(failSnippets))) + .cookies(cookieProvider.createCookiesWithMember(member)) + .contentType(ContentType.JSON) + .body(request) + .when().post("/offerings") + .then().log().all() + .statusCode(400); + } + + @DisplayName("총대가 가질 개수를 명시하지 않은 경우 1개로 설정하여 수행한다.") + @Test + void should_createOffering_when_emptyMyCount() { + OfferingSaveRequest request = new OfferingSaveRequest( + "공모 제목", + "www.naver.com", + "www.naver.com/favicon.ico", + 10, + 10000, + 2000, + "서울특별시 광진구 구의강변로 3길 11", + "상세주소아파트", + "구의동", + LocalDateTime.now(clock).plusDays(1), + "내용입니다.", + null + ); + + given().log().all() + .cookies(cookieProvider.createCookiesWithMember(member)) + .contentType(ContentType.JSON) + .body(request) + .when().post("/offerings") + .then().log().all() + .statusCode(201); + } } @DisplayName("상품 이미지 추출") diff --git a/backend/src/test/java/com/zzang/chongdae/offering/service/OfferingServiceTest.java b/backend/src/test/java/com/zzang/chongdae/offering/service/OfferingServiceTest.java index 5af1394c8..0a74ff440 100644 --- a/backend/src/test/java/com/zzang/chongdae/offering/service/OfferingServiceTest.java +++ b/backend/src/test/java/com/zzang/chongdae/offering/service/OfferingServiceTest.java @@ -461,7 +461,8 @@ void should_createOffering_when_givenOfferingWithoutOriginPriceCreateRequest() { "상세주소아파트", "구의동", LocalDateTime.now(clock).plusDays(1), - "내용입니다." + "내용입니다.", + 1 ); Long expected = 1L; diff --git a/backend/src/test/java/com/zzang/chongdae/offeringmember/integration/OfferingMemberIntegrationTest.java b/backend/src/test/java/com/zzang/chongdae/offeringmember/integration/OfferingMemberIntegrationTest.java index 12ae8c6d1..aa27646eb 100644 --- a/backend/src/test/java/com/zzang/chongdae/offeringmember/integration/OfferingMemberIntegrationTest.java +++ b/backend/src/test/java/com/zzang/chongdae/offeringmember/integration/OfferingMemberIntegrationTest.java @@ -31,7 +31,8 @@ public class OfferingMemberIntegrationTest extends IntegrationTest { class Participate { List requestDescriptors = List.of( - fieldWithPath("offeringId").description("공모 id (필수)") + fieldWithPath("offeringId").description("공모 id (필수)"), + fieldWithPath("participationCount").description("구매할 물품 개수") ); ResourceSnippetParameters successSnippets = ResourceSnippetParameters.builder() .summary("공모 참여") @@ -59,11 +60,12 @@ void setUp() { offeringMemberFixture.createProposer(proposer, offering); } - @DisplayName("게시된 공모에 참여할 수 있다") + @DisplayName("게시된 공모에 참여할 수 있다 - 물품 한개") @Test void should_participateSuccess() { ParticipationRequest request = new ParticipationRequest( - offering.getId() + offering.getId(), + 1 ); RestAssured.given(spec).log().all() .filter(document("participate-success", resource(successSnippets))) @@ -75,11 +77,62 @@ void should_participateSuccess() { .statusCode(201); } + @DisplayName("게시된 공모에 참여할 수 있다 - 물품 여러개") + @Test + void should_participateSuccess_when_givenMoreThanOne() { + ParticipationRequest request = new ParticipationRequest( + offering.getId(), + 3 + ); + RestAssured.given(spec).log().all() + .filter(document("participate-success", resource(successSnippets))) + .cookies(cookieProvider.createCookiesWithMember(participant)) + .contentType(ContentType.JSON) + .body(request) + .when().post("/participations") + .then().log().all() + .statusCode(201); + } + + @DisplayName("구매 개수를 명시하지 않은 경우 1개로 설정하여 수행한다.") + @Test + void should_participateSuccess_when_myCountNull() { + ParticipationRequest request = new ParticipationRequest( + offering.getId(), + null + ); + RestAssured.given().log().all() + .cookies(cookieProvider.createCookiesWithMember(participant)) + .contentType(ContentType.JSON) + .body(request) + .when().post("/participations") + .then().log().all() + .statusCode(201); + } + + @DisplayName("총 수량을 넘은 개수만큼 요청한 경우 참여할 수 없다.") + @Test + void should_throwException_when_givenExceededCount() { + ParticipationRequest request = new ParticipationRequest( + offering.getId(), + 6 + ); + RestAssured.given(spec).log().all() + .filter(document("participate-fail-exceeded-count", resource(failSnippets))) + .cookies(cookieProvider.createCookiesWithMember(participant)) + .contentType(ContentType.JSON) + .body(request) + .when().post("/participations") + .then().log().all() + .statusCode(400); + } + @DisplayName("공모자는 본인이 만든 공모에 참여할 수 없다") @Test void should_throwException_when_givenProposerParticipate() { ParticipationRequest request = new ParticipationRequest( - offering.getId() + offering.getId(), + 1 ); RestAssured.given(spec).log().all() .filter(document("participate-fail-my-offering", resource(failSnippets))) @@ -95,7 +148,8 @@ void should_throwException_when_givenProposerParticipate() { @Test void should_throwException_when_invalidOffering() { ParticipationRequest request = new ParticipationRequest( - offering.getId() + 100 + offering.getId() + 100, + 1 ); RestAssured.given(spec).log().all() .filter(document("participate-fail-invalid-offering", resource(failSnippets))) @@ -111,7 +165,8 @@ void should_throwException_when_invalidOffering() { @Test void should_throwException_when_emptyValue() { ParticipationRequest request = new ParticipationRequest( - null + null, + 1 ); RestAssured.given(spec).log().all() .filter(document("participate-fail-request-with-null", resource(failSnippets))) @@ -127,7 +182,8 @@ void should_throwException_when_emptyValue() { @Test void should_throwException_when_sameMemberAndSameOffering() throws InterruptedException { ParticipationRequest request = new ParticipationRequest( - offering.getId() + offering.getId(), + 1 ); ConcurrencyExecutor concurrencyExecutor = ConcurrencyExecutor.getInstance(); @@ -150,7 +206,8 @@ void should_throwException_when_differentMemberAndSameOffering() throws Interrup offeringMemberFixture.createProposer(proposer, offering); ParticipationRequest request = new ParticipationRequest( - offering.getId() + offering.getId(), + 1 ); MemberEntity participant1 = memberFixture.createMember("ever1"); MemberEntity participant2 = memberFixture.createMember("ever2"); @@ -172,6 +229,37 @@ void should_throwException_when_differentMemberAndSameOffering() throws Interrup assertThat(statusCodes).containsExactlyInAnyOrder(201, 400); } + + @DisplayName("두 참여자가 한 공모에 동시에 참여 할 때 총 개수가 넘을 경우 한 참여자만 참여할 수 있다.") + @Test + void should_preventConcurrentParticipate() throws InterruptedException { + ParticipationRequest request1 = new ParticipationRequest( + offering.getId(), + 3 + ); + ParticipationRequest request2 = new ParticipationRequest( + offering.getId(), + 3 + ); + MemberEntity participant1 = memberFixture.createMember("whatever"); + MemberEntity participant2 = memberFixture.createMember("however"); + + ConcurrencyExecutor concurrencyExecutor = ConcurrencyExecutor.getInstance(); + List statusCodes = concurrencyExecutor.execute( + () -> RestAssured.given().log().all() + .cookies(cookieProvider.createCookiesWithMember(participant1)) + .contentType(ContentType.JSON) + .body(request1) + .when().post("/participations") + .statusCode(), + () -> RestAssured.given().log().all() + .cookies(cookieProvider.createCookiesWithMember(participant2)) + .contentType(ContentType.JSON) + .body(request2) + .when().post("/participations") + .statusCode()); + assertThat(statusCodes).containsExactlyInAnyOrder(201, 400); + } } @DisplayName("공모 참여 취소") @@ -276,10 +364,14 @@ class OfferingParticipants { ); List successResponseDescriptors = List.of( fieldWithPath("proposer.nickname").description("공모 작성자 닉네임"), + fieldWithPath("proposer.count").description("공모 작성자 참여 개수"), + fieldWithPath("proposer.price").description("공모 작성자 지불할 금액"), fieldWithPath("participants[].nickname").description("공모 참여자 닉네임"), + fieldWithPath("participants[].count").description("공모 참여자 참여 개수"), + fieldWithPath("participants[].price").description("공모 참여자 지불할 금액"), fieldWithPath("count.currentCount").description("공모 참여자 현재원(작성자 + 참여자)"), fieldWithPath("count.totalCount").description("공모 참여자 총원"), - fieldWithPath("price").description("공모 참여자 예상 정산 가격") + fieldWithPath("price").description("공모 참여자 예상 정산 가격 - 현재는 불필요하지만 이전 버전 앱을 위해 남겨두었습니다.") ); ResourceSnippetParameters successSnippets = ResourceSnippetParameters.builder() .summary("공모 참여자 목록 조회") diff --git a/backend/src/test/java/com/zzang/chongdae/offeringmember/service/OfferingMemberServiceConcurrencyTest.java b/backend/src/test/java/com/zzang/chongdae/offeringmember/service/OfferingMemberServiceConcurrencyTest.java index 3f03940f7..3f3965004 100644 --- a/backend/src/test/java/com/zzang/chongdae/offeringmember/service/OfferingMemberServiceConcurrencyTest.java +++ b/backend/src/test/java/com/zzang/chongdae/offeringmember/service/OfferingMemberServiceConcurrencyTest.java @@ -26,7 +26,7 @@ void should_failParticipate_when_givenSameMemberAndSameOffering() throws Interru offeringMemberFixture.createProposer(proposer, offering); // when - ParticipationRequest request = new ParticipationRequest(offering.getId()); + ParticipationRequest request = new ParticipationRequest(offering.getId(), 1); MemberEntity participant = memberFixture.createMember("whoever"); ConcurrencyExecutor concurrencyExecutor = ConcurrencyExecutor.getInstance(); @@ -47,7 +47,7 @@ void should_failParticipate_when_givenDifferentMemberAndSameOffering() throws In offeringMemberFixture.createProposer(proposer, offering); // when - ParticipationRequest request = new ParticipationRequest(offering.getId()); + ParticipationRequest request = new ParticipationRequest(offering.getId(), 1); MemberEntity participant1 = memberFixture.createMember("ever1"); MemberEntity participant2 = memberFixture.createMember("ever2");