diff --git a/src/main/java/com/pawwithu/connectdog/domain/post/controller/PostController.java b/src/main/java/com/pawwithu/connectdog/domain/post/controller/PostController.java index e9015d9c..151408d3 100644 --- a/src/main/java/com/pawwithu/connectdog/domain/post/controller/PostController.java +++ b/src/main/java/com/pawwithu/connectdog/domain/post/controller/PostController.java @@ -133,4 +133,16 @@ public ResponseEntity getIntermediaryOnePost(@Au return ResponseEntity.ok(onePost); } + @Operation(summary = "공고 끌어올리기", description = "공고를 끌어올립니다.", + responses = {@ApiResponse(responseCode = "204", description = "공고 끌어올리기 성공") + , @ApiResponse(responseCode = "400" + , description = "M2, 해당 이동봉사 중개를 찾을 수 없습니다. \t\n P2, 해당 공고를 찾을 수 없습니다." + , content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + }) + @PatchMapping(value = "/intermediaries/posts/{postId}/boost") + public ResponseEntity boostPost(@AuthenticationPrincipal UserDetails loginUser, + @PathVariable Long postId) { + postService.boostPost(loginUser.getUsername(), postId); + return ResponseEntity.noContent().build(); + } } diff --git a/src/main/java/com/pawwithu/connectdog/domain/post/dto/request/PostCreateRequest.java b/src/main/java/com/pawwithu/connectdog/domain/post/dto/request/PostCreateRequest.java index d154cec2..2e8efb21 100644 --- a/src/main/java/com/pawwithu/connectdog/domain/post/dto/request/PostCreateRequest.java +++ b/src/main/java/com/pawwithu/connectdog/domain/post/dto/request/PostCreateRequest.java @@ -11,6 +11,7 @@ import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDate; +import java.time.LocalDateTime; public record PostCreateRequest(@NotBlank(message = "출발 지역은 필수 입력 값입니다.") String departureLoc, @@ -45,6 +46,7 @@ public static Post postToEntity(PostCreateRequest request, Dog dog, Intermediary .status(PostStatus.RECRUITING) .dog(dog) .intermediary(intermediary) + .boostDate(LocalDateTime.now()) .build(); } diff --git a/src/main/java/com/pawwithu/connectdog/domain/post/entity/Post.java b/src/main/java/com/pawwithu/connectdog/domain/post/entity/Post.java index c1af7e58..6d6b3af1 100644 --- a/src/main/java/com/pawwithu/connectdog/domain/post/entity/Post.java +++ b/src/main/java/com/pawwithu/connectdog/domain/post/entity/Post.java @@ -7,6 +7,7 @@ import lombok.*; import java.time.LocalDate; +import java.time.LocalDateTime; @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @@ -42,9 +43,10 @@ public class Post extends BaseTimeEntity { @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "dog_id", nullable = false) private Dog dog; // 강아지 id + private LocalDateTime boostDate; // 끌어올리기 날짜 @Builder - public Post(PostStatus status, String departureLoc, String arrivalLoc, LocalDate startDate, LocalDate endDate, String pickUpTime, Boolean isKennel, String content, Intermediary intermediary, Dog dog) { + public Post(PostStatus status, String departureLoc, String arrivalLoc, LocalDate startDate, LocalDate endDate, String pickUpTime, Boolean isKennel, String content, Intermediary intermediary, Dog dog, LocalDateTime boostDate) { this.status = status; this.departureLoc = departureLoc; this.arrivalLoc = arrivalLoc; @@ -55,6 +57,7 @@ public Post(PostStatus status, String departureLoc, String arrivalLoc, LocalDate this.content = content; this.intermediary = intermediary; this.dog = dog; + this.boostDate = boostDate; } public void updateMainImage(PostImage mainImage) { @@ -78,4 +81,6 @@ public void updatePost(String departureLoc, String arrivalLoc, LocalDate startDa public void updateDeletedIntermediary(Intermediary deletedIntermediary) { this.intermediary = deletedIntermediary; } + + public void updateBoostDate() { this.boostDate = LocalDateTime.now(); } } diff --git a/src/main/java/com/pawwithu/connectdog/domain/post/service/PostService.java b/src/main/java/com/pawwithu/connectdog/domain/post/service/PostService.java index d83d2bbb..1b7d04ba 100644 --- a/src/main/java/com/pawwithu/connectdog/domain/post/service/PostService.java +++ b/src/main/java/com/pawwithu/connectdog/domain/post/service/PostService.java @@ -29,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import java.time.LocalDateTime; import java.util.List; import java.util.stream.Collectors; @@ -177,4 +178,17 @@ public PostIntermediaryGetOneResponse getIntermediaryOnePost(String email, Long PostIntermediaryGetOneResponse response = PostIntermediaryGetOneResponse.of(onePost, onePostImages); return response; } + + public void boostPost(String email, Long postId) { + // 이동봉사 중개 + Intermediary intermediary = intermediaryRepository.findByEmail(email).orElseThrow(() -> new BadRequestException(INTERMEDIARY_NOT_FOUND)); + // 공고 + Post post = postRepository.findByIdAndIntermediaryIdAndStatus(postId, intermediary.getId(), PostStatus.RECRUITING).orElseThrow(() -> new BadRequestException(POST_NOT_FOUND)); + LocalDateTime now = LocalDateTime.now(); + // 공고 끌어올린 시점에서 48시간이 지나지 않았다면 exception + if (now.isBefore(post.getBoostDate().plusHours(48))) { + throw new BadRequestException(INVALID_BOOST_REQUEST); + } + post.updateBoostDate(); + } } diff --git a/src/main/java/com/pawwithu/connectdog/error/ErrorCode.java b/src/main/java/com/pawwithu/connectdog/error/ErrorCode.java index c1aaefed..fa76c29d 100644 --- a/src/main/java/com/pawwithu/connectdog/error/ErrorCode.java +++ b/src/main/java/com/pawwithu/connectdog/error/ErrorCode.java @@ -50,7 +50,9 @@ public enum ErrorCode { DOG_STATUS_NOT_FOUND("D1", "해당 근황을 찾을 수 없습니다."), NOTIFICATION_SEND_ERROR("N1", "알림 전송을 실패했습니다."), - NOTIFICATION_NOT_FOUND("N2", "해당 알림을 찾을 수 없습니다."); + NOTIFICATION_NOT_FOUND("N2", "해당 알림을 찾을 수 없습니다."), + + INVALID_BOOST_REQUEST("B1", "잘못된 끌어올리기 요청입니다."); private final String code; diff --git a/src/main/resources/import.sql b/src/main/resources/import.sql index 85b31041..11f0f86e 100644 --- a/src/main/resources/import.sql +++ b/src/main/resources/import.sql @@ -38,39 +38,39 @@ INSERT INTO dog (id, name, size, specifics, created_date, modified_date) VALUES -- INSERT POST (status 0 - 모집중) -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (1, 'RECRUITING', '서울 성동구', '부산 소래포구', '2024-05-12', '2024-06-19', '오전 9:00', false, '보리와 함께 이동해 주실 분을 찾습니다~~^^ 보리가 드디어 4개월만에 입양처가 결정되어 이동봉사가 필요하게 되었습니다.\n\n서울부터 부산까지 먼 거리지만 보리의 새 가족을 찾기 위해 도와주실 수 있는 분이셨으면 좋겠습니다.', 2, 1, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (1, 'RECRUITING', '서울 성동구', '부산 소래포구', '2024-05-12', '2024-06-19', '오전 9:00', false, '보리와 함께 이동해 주실 분을 찾습니다~~^^ 보리가 드디어 4개월만에 입양처가 결정되어 이동봉사가 필요하게 되었습니다.\n\n서울부터 부산까지 먼 거리지만 보리의 새 가족을 찾기 위해 도와주실 수 있는 분이셨으면 좋겠습니다.', 2, 1, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (2, 'RECRUITING', '서울 성동구', '대전 동구', '2024-05-12', '2024-06-11', '오후 2:00', true, '안녕하세요^^~ 생명사랑의 터줏대감 로키가 감사하게도 입양처로 이동하게 되었습니다. 따뜻한 입양처로 가게 될 로키의 이동을 도와주실 이동봉사자분을 찾습니다.\n\n로키가 겁이 좀 많아도 사람과 친해지면 잘 치대는 우리 로키와 함께 대전으로 이동해 주실 봉사자분을 애타게 찾아봅니다 ㅎㅎ', 2, 2, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (2, 'RECRUITING', '서울 성동구', '대전 동구', '2024-05-12', '2024-06-11', '오후 2:00', true, '안녕하세요^^~ 생명사랑의 터줏대감 로키가 감사하게도 입양처로 이동하게 되었습니다. 따뜻한 입양처로 가게 될 로키의 이동을 도와주실 이동봉사자분을 찾습니다.\n\n로키가 겁이 좀 많아도 사람과 친해지면 잘 치대는 우리 로키와 함께 대전으로 이동해 주실 봉사자분을 애타게 찾아봅니다 ㅎㅎ', 2, 2, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (3, 'RECRUITING', '서울 성동구', '서울 강서구', '2024-05-12', '2024-06-12', '오후 4:00', false, '우리 귀여운 백설이 드디어 입양갑니다!! 소중한 입양처로 이동해 주실 이동봉사자분을 찾아요.\n\n백설이는 저희 보호소에서 제일 순하고 사람을 좋아하는 아이로, 처음 이동봉사를 하시는 분이더라도 쉽게 이동봉사를 진행해 보실 수 있을 거예요.', 2, 3, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (3, 'RECRUITING', '서울 성동구', '서울 강서구', '2024-05-12', '2024-06-12', '오후 4:00', false, '우리 귀여운 백설이 드디어 입양갑니다!! 소중한 입양처로 이동해 주실 이동봉사자분을 찾아요.\n\n백설이는 저희 보호소에서 제일 순하고 사람을 좋아하는 아이로, 처음 이동봉사를 하시는 분이더라도 쉽게 이동봉사를 진행해 보실 수 있을 거예요.', 2, 3, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (4, 'RECRUITING', '서울 잠실구', '경기 고양시', '2024-05-13', '2024-06-14', '오전 10:00', true, '서울부터 고양까지 이동봉사 해주실 분을 찾습니다. 베티가 급하게 이동해야 할 사정이 생겨 이동봉사자를 구하게 되었습니다. 베티는 조용한 강아지로 이동봉사를 할 때 쉽게 진행하실 수 있으실 거예요.', 2, 4, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (4, 'RECRUITING', '서울 잠실구', '경기 고양시', '2024-05-13', '2024-06-14', '오전 10:00', true, '서울부터 고양까지 이동봉사 해주실 분을 찾습니다. 베티가 급하게 이동해야 할 사정이 생겨 이동봉사자를 구하게 되었습니다. 베티는 조용한 강아지로 이동봉사를 할 때 쉽게 진행하실 수 있으실 거예요.', 2, 4, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (5, 'RECRUITING', '서울 잠실구', '경북 구미시', '2024-05-14', '2024-06-09', '오후 3:00', true, '테디가 건강이 악화되어 경북 구미에 있는 병원으로 급하게 이동이 필요한 상황입니다.\n\n최대한 빨리 이동이 필요한 상황으로 테디의 컨디션이 좋지 않아 그 부분을 이해해 주실 수 있는 봉사자 분이셨으면 좋겠습니다.', 2, 5, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (5, 'RECRUITING', '서울 잠실구', '경북 구미시', '2024-05-14', '2024-06-09', '오후 3:00', true, '테디가 건강이 악화되어 경북 구미에 있는 병원으로 급하게 이동이 필요한 상황입니다.\n\n최대한 빨리 이동이 필요한 상황으로 테디의 컨디션이 좋지 않아 그 부분을 이해해 주실 수 있는 봉사자 분이셨으면 좋겠습니다.', 2, 5, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (6, 'RECRUITING', '서울 잠실구', '서울 관악구', '2024-05-15', '2024-06-20', '오후 1:00', true, '겁이 많은 우리 루시가 가족을 찾게 되었습니다. 잠실에서 관악까지 짧은 거리지만 겁이 많은 우리 루시가 짖을 수도 있어 루시를 잘 데리고 가주실 이동봉사자분을 구합니다.', 2, 6, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (6, 'RECRUITING', '서울 잠실구', '서울 관악구', '2024-05-15', '2024-06-20', '오후 1:00', true, '겁이 많은 우리 루시가 가족을 찾게 되었습니다. 잠실에서 관악까지 짧은 거리지만 겁이 많은 우리 루시가 짖을 수도 있어 루시를 잘 데리고 가주실 이동봉사자분을 구합니다.', 2, 6, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (7, 'RECRUITING', '대전 서구', '대전 동구', '2024-05-16', '2024-06-17', '오전 11:00', true, '벤지가 급하게 병원을 가야합니다. 벤지의 눈 주위 염증이 심해서 급하게 수술을 진행하기 위해 서구에서 동구로 이동이 필요해 빠르게 이동시켜 주실 수 있는 봉사자분을 찾습니다.', 2, 7, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (7, 'RECRUITING', '대전 서구', '대전 동구', '2024-05-16', '2024-06-17', '오전 11:00', true, '벤지가 급하게 병원을 가야합니다. 벤지의 눈 주위 염증이 심해서 급하게 수술을 진행하기 위해 서구에서 동구로 이동이 필요해 빠르게 이동시켜 주실 수 있는 봉사자분을 찾습니다.', 2, 7, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (8, 'RECRUITING', '경기 고양시', '서울 강남구', '2024-05-11', '2024-06-15', '오후 3:00', false, '병원에서 위탁처 이동입니다. 켄넬이 없어 개인 켄넬 준비가 필요합니다.', 3, 8, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (8, 'RECRUITING', '경기 고양시', '서울 강남구', '2024-05-11', '2024-06-15', '오후 3:00', false, '병원에서 위탁처 이동입니다. 켄넬이 없어 개인 켄넬 준비가 필요합니다.', 3, 8, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (9, 'RECRUITING', '인천 미추홀구', '서울 서초구', '2024-05-12', '2024-06-18', '오후 4:00', true, '주디가 좋은 가족을 찾았습니다!\n\n임보자님이 스케쥴때문에 직접 픽업을 하지 못해 주디가 무사히 가족의 집인 서초구로 이동할 수 있도록 도와주실 수 있는 분을 찾습니다.', 3, 9, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (9, 'RECRUITING', '인천 미추홀구', '서울 서초구', '2024-05-12', '2024-06-18', '오후 4:00', true, '주디가 좋은 가족을 찾았습니다!\n\n임보자님이 스케쥴때문에 직접 픽업을 하지 못해 주디가 무사히 가족의 집인 서초구로 이동할 수 있도록 도와주실 수 있는 분을 찾습니다.', 3, 9, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (10, 'RECRUITING', '서울 광진구', '경기 평택시', '2024-05-12', '2024-06-18', '오전 10:00', true, '하늘이가 단기임보처를 구해 단기임보처로의 이동이 필요합니다. 사람보다는 강아지랑 더 친한 하늘이기에 사람하고 더 가까워지기 위한 연습을 위해 임시보호처로 이동합니다~', 3, 10, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (10, 'RECRUITING', '서울 광진구', '경기 평택시', '2024-05-12', '2024-06-18', '오전 10:00', true, '하늘이가 단기임보처를 구해 단기임보처로의 이동이 필요합니다. 사람보다는 강아지랑 더 친한 하늘이기에 사람하고 더 가까워지기 위한 연습을 위해 임시보호처로 이동합니다~', 3, 10, now(), now(), now()); -- INSERT POST (status 2 - 진행중) -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (11, 'PROGRESSING', '서울 서대문구', '서울 동대문구', '2024-05-18', '2024-06-08', '오전 9:00', true, '우리 귀여운 대박이가 드디어 새로운 가족을 찾아서 떠납니다! 대박이와의 이동을 도와주실 분을 찾습니다!', 2, 11, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (11, 'PROGRESSING', '서울 서대문구', '서울 동대문구', '2024-05-18', '2024-06-08', '오전 9:00', true, '우리 귀여운 대박이가 드디어 새로운 가족을 찾아서 떠납니다! 대박이와의 이동을 도와주실 분을 찾습니다!', 2, 11, now(), now(), now()); -- INSERT POST (status 3 - 봉사완료) -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (12, 'COMPLETED', '서울 성북구', '경기 성남시', '2023-02-21', '2023-03-21', '오후 4:00', true, '안녕하세요^^~ 생명사랑의 터줏대감 여름이가 감사하게도 입양처로 이동하게 되었습니다. 따뜻한 입양처로 가게 될 여름이의 이동을 도와주실 이동봉사자분을 찾습니다.\n\n여름이가 겁이 좀 많아도 사람과 친해지면 잘 치대는 우리 여름이와 함께 성남으로 이동해주실 봉사자분을 애타게 찾아봅니다 ㅎㅎ', 2, 12, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (12, 'COMPLETED', '서울 성북구', '경기 성남시', '2023-02-21', '2023-03-21', '오후 4:00', true, '안녕하세요^^~ 생명사랑의 터줏대감 여름이가 감사하게도 입양처로 이동하게 되었습니다. 따뜻한 입양처로 가게 될 여름이의 이동을 도와주실 이동봉사자분을 찾습니다.\n\n여름이가 겁이 좀 많아도 사람과 친해지면 잘 치대는 우리 여름이와 함께 성남으로 이동해주실 봉사자분을 애타게 찾아봅니다 ㅎㅎ', 2, 12, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (13, 'COMPLETED', '서울 중랑구', '서울 노원구', '2023-04-29', '2023-04-29', '오전 8:00', false, '우리 귀여운 겨울이 드디어 입양갑니다!! 소중한 입양처로 이동해 주실 이동봉사자 분을 찾아요.\n\n겨울이는 저희 보호소에서 제일 순하고 사람을 좋아하는 아이로, 처음 이동봉사를 하시는 분이더라도 쉽게 이동봉사를 진행해 보실 수 있을거예요. ', 2, 13, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (13, 'COMPLETED', '서울 중랑구', '서울 노원구', '2023-04-29', '2023-04-29', '오전 8:00', false, '우리 귀여운 겨울이 드디어 입양갑니다!! 소중한 입양처로 이동해 주실 이동봉사자 분을 찾아요.\n\n겨울이는 저희 보호소에서 제일 순하고 사람을 좋아하는 아이로, 처음 이동봉사를 하시는 분이더라도 쉽게 이동봉사를 진행해 보실 수 있을거예요. ', 2, 13, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (14, 'COMPLETED', '경기 용인시', '경기 수원시', '2023-12-01', '2023-12-01', '오전 10:00', true, '용인부터 수원까지 이동봉사 해주실 분을 찾습니다. 짱구가 급하게 이동해야 할 사정이 생겨 이동봉사자를 구하게 되었습니다. 짱구는 조용한 강아지로 이동봉사를 할 때 쉽게 진행하실 수 있으실 거예요.', 2, 14, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (14, 'COMPLETED', '경기 용인시', '경기 수원시', '2023-12-01', '2023-12-01', '오전 10:00', true, '용인부터 수원까지 이동봉사 해주실 분을 찾습니다. 짱구가 급하게 이동해야 할 사정이 생겨 이동봉사자를 구하게 되었습니다. 짱구는 조용한 강아지로 이동봉사를 할 때 쉽게 진행하실 수 있으실 거예요.', 2, 14, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (15, 'COMPLETED', '경기 화성시', '서울 잠실구', '2023-10-14', '2023-10-14', '미정', true, '로지가 건강이 악화되어 서울 잠실에 있는 병원으로 급하게 이동이 필요한 상황입니다. 최대한 빨리 이동이 필요한 상황으로 로지의 컨디션이 좋지 않아 그 부분을 이해해 주실 수 있는 봉사자 분이셨으면 좋겠습니다.', 2, 15, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (15, 'COMPLETED', '경기 화성시', '서울 잠실구', '2023-10-14', '2023-10-14', '미정', true, '로지가 건강이 악화되어 서울 잠실에 있는 병원으로 급하게 이동이 필요한 상황입니다. 최대한 빨리 이동이 필요한 상황으로 로지의 컨디션이 좋지 않아 그 부분을 이해해 주실 수 있는 봉사자 분이셨으면 좋겠습니다.', 2, 15, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (16, 'COMPLETED', '경기 화성시', '서울 잠실구', '2023-10-14', '2023-10-14', '미정', true, '가을이가 이동봉사 해주실 분을 찾습니다. 최대한 빨리 이동이 필요한 상황으로 로지의 컨디션이 좋지 않아 그 부분을 이해해 주실 수 있는 봉사자 분이셨으면 좋겠습니다.', 3, 16, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (16, 'COMPLETED', '경기 화성시', '서울 잠실구', '2023-10-14', '2023-10-14', '미정', true, '가을이가 이동봉사 해주실 분을 찾습니다. 최대한 빨리 이동이 필요한 상황으로 로지의 컨디션이 좋지 않아 그 부분을 이해해 주실 수 있는 봉사자 분이셨으면 좋겠습니다.', 3, 16, now(), now(), now()); -- INSERT POST_IMAGE @@ -268,61 +268,61 @@ INSERT INTO dog (id, name, size, specifics, created_date, modified_date) VALUES -- INSERT POST (status 0 - 모집중) -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (17, 'RECRUITING', '서울 중량구', '서울 서초구', '2024-05-19', '2024-06-18', '미정', true, '비키가 좋은 가족을 찾았습니다!\n\n임보자님이 스케쥴 때문에 직접 픽업을 하지 못해 비키가 무사히 가족의 집인 서초구로 이동할 수 있도록 도와주실 수 있는 분을 찾습니다.', 4, 17, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (17, 'RECRUITING', '서울 중량구', '서울 서초구', '2024-05-19', '2024-06-18', '미정', true, '비키가 좋은 가족을 찾았습니다!\n\n임보자님이 스케쥴 때문에 직접 픽업을 하지 못해 비키가 무사히 가족의 집인 서초구로 이동할 수 있도록 도와주실 수 있는 분을 찾습니다.', 4, 17, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (18, 'RECRUITING', '서울 중구', '서울 노원구', '2024-05-18', '2024-06-15', '미정', true, '푸딩이가 단기 임보처를 구해 단기 임보처로의 이동이 필요합니다. 사람보다는 강아지랑 더 친한 푸딩이기에 사람하고 더 가까워지기 위한 연습을 위해 임시보호처로 이동합니다~', 4, 18, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (18, 'RECRUITING', '서울 중구', '서울 노원구', '2024-05-18', '2024-06-15', '미정', true, '푸딩이가 단기 임보처를 구해 단기 임보처로의 이동이 필요합니다. 사람보다는 강아지랑 더 친한 푸딩이기에 사람하고 더 가까워지기 위한 연습을 위해 임시보호처로 이동합니다~', 4, 18, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (19, 'RECRUITING', '경기 화성시', '경기 안산시', '2024-05-17', '2024-06-17', '미정', true, '우리 귀여운 포포가 드디어 새로운 가족을 찾아서 떠납니다! 포포의 이동을 도와주실 분을 찾습니다!', 4, 19, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (19, 'RECRUITING', '경기 화성시', '경기 안산시', '2024-05-17', '2024-06-17', '미정', true, '우리 귀여운 포포가 드디어 새로운 가족을 찾아서 떠납니다! 포포의 이동을 도와주실 분을 찾습니다!', 4, 19, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (20, 'RECRUITING', '인천 연수구', '인천 미추홀구', '2024-05-16', '2024-06-11', '미정', true, '안녕하세요^^~ 꿈돌이가 감사하게도 입양처로 이동하게 되었습니다. 따뜻한 입양처로 가게 될 꿈돌이의 이동을 도와주실 이동봉사자분을 찾습니다.\n\n꿈돌이가 겁이 좀 많아도 사람과 친해지면 잘 치대는 우리 꿈돌이와 함께 미추홀구으로 이동해 주실 봉사자분을 애타게 찾아봅니다 ㅎㅎ', 5, 20, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (20, 'RECRUITING', '인천 연수구', '인천 미추홀구', '2024-05-16', '2024-06-11', '미정', true, '안녕하세요^^~ 꿈돌이가 감사하게도 입양처로 이동하게 되었습니다. 따뜻한 입양처로 가게 될 꿈돌이의 이동을 도와주실 이동봉사자분을 찾습니다.\n\n꿈돌이가 겁이 좀 많아도 사람과 친해지면 잘 치대는 우리 꿈돌이와 함께 미추홀구으로 이동해 주실 봉사자분을 애타게 찾아봅니다 ㅎㅎ', 5, 20, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (21, 'RECRUITING', '서울 은평구', '경기 의정부시', '2024-05-15', '2024-06-13', '미정', false, '우리 귀여운 별님이가 드디어 입양갑니다!! 소중한 입양처로 이동해 주실 이동봉사자 분을 찾아요.\n\n별님이는 저희 보호소에서 제일 순하고 사람을 좋아하는 아이로, 처음 이동봉사를 하시는 분이더라도 쉽게 이동봉사를 진행해 보실 수 있을 거예요.', 5, 21, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (21, 'RECRUITING', '서울 은평구', '경기 의정부시', '2024-05-15', '2024-06-13', '미정', false, '우리 귀여운 별님이가 드디어 입양갑니다!! 소중한 입양처로 이동해 주실 이동봉사자 분을 찾아요.\n\n별님이는 저희 보호소에서 제일 순하고 사람을 좋아하는 아이로, 처음 이동봉사를 하시는 분이더라도 쉽게 이동봉사를 진행해 보실 수 있을 거예요.', 5, 21, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (22, 'RECRUITING', '서울 잠실구', '경기 양주시', '2024-05-14', '2024-06-10', '미정', true, '서울 잠실구부터 경기 양주까지 먼 길이지만 이동봉사 해주실 분을 찾습니다. 햇님이가 급하게 이동해야 할 사정이 생겨 이동봉사자를 구하게 되었습니다. 햇님이는 조용한 강아지로 이동봉사를 할 때 쉽게 진행하실 수 있으실 거예요.', 5, 22, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (22, 'RECRUITING', '서울 잠실구', '경기 양주시', '2024-05-14', '2024-06-10', '미정', true, '서울 잠실구부터 경기 양주까지 먼 길이지만 이동봉사 해주실 분을 찾습니다. 햇님이가 급하게 이동해야 할 사정이 생겨 이동봉사자를 구하게 되었습니다. 햇님이는 조용한 강아지로 이동봉사를 할 때 쉽게 진행하실 수 있으실 거예요.', 5, 22, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (23, 'RECRUITING', '경기 화성시', '서울 잠실구', '2024-05-13', '2024-06-19', '미정', true, '달님이가 건강이 악화되어 서울 잠실에 있는 병원으로 급하게 이동이 필요한 상황입니다.\n\n최대한 빨리 이동이 필요한 상황으로 달님이의 컨디션이 좋지 않아 그 부분을 이해해 주실 수 있는 봉사자분이셨으면 좋겠습니다.', 6, 23, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (23, 'RECRUITING', '경기 화성시', '서울 잠실구', '2024-05-13', '2024-06-19', '미정', true, '달님이가 건강이 악화되어 서울 잠실에 있는 병원으로 급하게 이동이 필요한 상황입니다.\n\n최대한 빨리 이동이 필요한 상황으로 달님이의 컨디션이 좋지 않아 그 부분을 이해해 주실 수 있는 봉사자분이셨으면 좋겠습니다.', 6, 23, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (24, 'RECRUITING', '경기 수원시', '경기 용인시', '2024-05-12', '2024-06-21', '미정', false, '병원에서 위탁처 이동입니다. 켄넬이 없어 개인 켄넬 준비가 필요합니다.', 6, 24, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (24, 'RECRUITING', '경기 수원시', '경기 용인시', '2024-05-12', '2024-06-21', '미정', false, '병원에서 위탁처 이동입니다. 켄넬이 없어 개인 켄넬 준비가 필요합니다.', 6, 24, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (25, 'RECRUITING', '서울 서대문구', '경기 평택시', '2024-05-11', '2024-06-22', '미정', false, '안녕하세요^^~ 따뜻한 입양처로 가게 될 바다의 이동을 도와주실 이동봉사자분을 찾습니다.\n\n바다가 겁이 좀 많아도 사람과 친해지면 잘 치대는 우리 바다와 함께 평택시로 이동해 주실 봉사자분을 애타게 찾아봅니다 ㅎㅎ', 6, 25, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (25, 'RECRUITING', '서울 서대문구', '경기 평택시', '2024-05-11', '2024-06-22', '미정', false, '안녕하세요^^~ 따뜻한 입양처로 가게 될 바다의 이동을 도와주실 이동봉사자분을 찾습니다.\n\n바다가 겁이 좀 많아도 사람과 친해지면 잘 치대는 우리 바다와 함께 평택시로 이동해 주실 봉사자분을 애타게 찾아봅니다 ㅎㅎ', 6, 25, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (26, 'RECRUITING', '서울 강남구', '서울 서초구', '2024-05-10', '2024-06-23', '미정', false, '우리 귀여운 윤슬이 드디어 입양갑니다!! 소중한 입양처로 이동해 주실 이동봉사자 분을 찾아요. \n\n윤슬이는 저희 보호소에서 제일 순하고 사람을 좋아하는 아이로, 처음 이동봉사를 하시는 분이더라도 쉽게 이동봉사를 진행해보실 수 있을 거예요.', 7, 26, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (26, 'RECRUITING', '서울 강남구', '서울 서초구', '2024-05-10', '2024-06-23', '미정', false, '우리 귀여운 윤슬이 드디어 입양갑니다!! 소중한 입양처로 이동해 주실 이동봉사자 분을 찾아요. \n\n윤슬이는 저희 보호소에서 제일 순하고 사람을 좋아하는 아이로, 처음 이동봉사를 하시는 분이더라도 쉽게 이동봉사를 진행해보실 수 있을 거예요.', 7, 26, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (27, 'RECRUITING', '서울 동대문구', '경기 파주시', '2024-05-03', '2024-07-01', '미정', true, '용인에서 성남까지 이동봉사 해주실 분을 찾습니다. 슬기가 급하게 이동해야 할 사정이 생겨 이동봉사자를 구하게 되었습니다. 슬기는 조용한 강아지로 이동봉사를 할 때 쉽게 진행하실 수 있으실 거예요.', 7, 27, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (27, 'RECRUITING', '서울 동대문구', '경기 파주시', '2024-05-03', '2024-07-01', '미정', true, '용인에서 성남까지 이동봉사 해주실 분을 찾습니다. 슬기가 급하게 이동해야 할 사정이 생겨 이동봉사자를 구하게 되었습니다. 슬기는 조용한 강아지로 이동봉사를 할 때 쉽게 진행하실 수 있으실 거예요.', 7, 27, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (28, 'RECRUITING', '서울 성동구', '부산 소래포구', '2024-05-02', '2024-06-18', '미정', false, '슬구가 건강이 악화되어 파주에 있는 병원으로 급하게 이동이 필요한 상황입니다.\n\n최대한 빨리 이동이 필요한 상황으로 슬구의 컨디션이 좋지 않아 그 부분을 이해해 주실 수 있는 봉사자분이셨으면 좋겠습니다.', 7, 28, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (28, 'RECRUITING', '서울 성동구', '부산 소래포구', '2024-05-02', '2024-06-18', '미정', false, '슬구가 건강이 악화되어 파주에 있는 병원으로 급하게 이동이 필요한 상황입니다.\n\n최대한 빨리 이동이 필요한 상황으로 슬구의 컨디션이 좋지 않아 그 부분을 이해해 주실 수 있는 봉사자분이셨으면 좋겠습니다.', 7, 28, now(), now(), now()); -- INSERT POST (status 1 - 승인대기중) -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (29, 'WAITING', '경기 오산시', '경기 화성시', '2024-05-10', '2024-05-21', '미정', true, '겁이 많은 우리 잔디가 가족을 찾게 되었습니다. 오산부터 화성까지 짧은 거리지만 겁이 많은 우리 잔디가 짖을 수도 있어 잔디를 잘 데리고 가주실 이동봉사자 분을 구합니다.', 4, 29, now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (30, 'WAITING', '경기 오산시', '경기 화성시', '2024-05-11', '2024-06-19', '미정', true, '겁이 많은 우리 잔디가 가족을 찾게 되었습니다. 오산부터 화성까지 짧은 거리지만 겁이 많은 우리 잔디가 짖을 수도 있어 잔디를 잘 데리고 가주실 이동봉사자 분을 구합니다.', 5, 30, now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (31, 'WAITING', '경기 오산시', '경기 화성시', '2024-05-15', '2024-06-17', '미정', true, '겁이 많은 우리 잔디가 가족을 찾게 되었습니다. 오산부터 화성까지 짧은 거리지만 겁이 많은 우리 잔디가 짖을 수도 있어 잔디를 잘 데리고 가주실 이동봉사자 분을 구합니다.', 6, 31, now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date) VALUES (32, 'WAITING', '경기 오산시', '경기 화성시', '2024-05-16', '2024-06-15', '미정', true, '겁이 많은 우리 잔디가 가족을 찾게 되었습니다. 오산부터 화성까지 짧은 거리지만 겁이 많은 우리 잔디가 짖을 수도 있어 잔디를 잘 데리고 가주실 이동봉사자 분을 구합니다.', 7, 32, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (29, 'WAITING', '경기 오산시', '경기 화성시', '2024-05-10', '2024-05-21', '미정', true, '겁이 많은 우리 잔디가 가족을 찾게 되었습니다. 오산부터 화성까지 짧은 거리지만 겁이 많은 우리 잔디가 짖을 수도 있어 잔디를 잘 데리고 가주실 이동봉사자 분을 구합니다.', 4, 29, now(), now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (30, 'WAITING', '경기 오산시', '경기 화성시', '2024-05-11', '2024-06-19', '미정', true, '겁이 많은 우리 잔디가 가족을 찾게 되었습니다. 오산부터 화성까지 짧은 거리지만 겁이 많은 우리 잔디가 짖을 수도 있어 잔디를 잘 데리고 가주실 이동봉사자 분을 구합니다.', 5, 30, now(), now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (31, 'WAITING', '경기 오산시', '경기 화성시', '2024-05-15', '2024-06-17', '미정', true, '겁이 많은 우리 잔디가 가족을 찾게 되었습니다. 오산부터 화성까지 짧은 거리지만 겁이 많은 우리 잔디가 짖을 수도 있어 잔디를 잘 데리고 가주실 이동봉사자 분을 구합니다.', 6, 31, now(), now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date) VALUES (32, 'WAITING', '경기 오산시', '경기 화성시', '2024-05-16', '2024-06-15', '미정', true, '겁이 많은 우리 잔디가 가족을 찾게 되었습니다. 오산부터 화성까지 짧은 거리지만 겁이 많은 우리 잔디가 짖을 수도 있어 잔디를 잘 데리고 가주실 이동봉사자 분을 구합니다.', 7, 32, now(), now(), now()); -- INSERT POST (status 2 - 진행중) -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date)VALUES (33, 'PROGRESSING', '서울 도봉구', ' 서울 노원구', '2024-05-18', '2024-06-18', '미정', true, '동글이가 급하게 병원을 가야합니다. 동글이의 눈 주위 염증이 심해서 급하게 수술을 진행하기 위해 도봉구에서 노원구로 이동이 필요해 빠르게 이동시켜주실 수 있는 봉사자분을 찾습니다.',4, 33, now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date)VALUES (34, 'PROGRESSING', '서울 도봉구', ' 서울 노원구', '2024-05-17', '2024-06-19', '미정', true, '동글이가 급하게 병원을 가야합니다. 동글이의 눈 주위 염증이 심해서 급하게 수술을 진행하기 위해 도봉구에서 노원구로 이동이 필요해 빠르게 이동시켜주실 수 있는 봉사자분을 찾습니다.',5, 34, now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date)VALUES (35, 'PROGRESSING', '서울 도봉구', ' 서울 노원구', '2024-05-16', '2024-06-17', '미정', true, '동글이가 급하게 병원을 가야합니다. 동글이의 눈 주위 염증이 심해서 급하게 수술을 진행하기 위해 도봉구에서 노원구로 이동이 필요해 빠르게 이동시켜주실 수 있는 봉사자분을 찾습니다.',6, 35, now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date)VALUES (36, 'PROGRESSING', '서울 도봉구', ' 서울 노원구', '2024-05-11', '2024-06-15', '미정', true, '동글이가 급하게 병원을 가야합니다. 동글이의 눈 주위 염증이 심해서 급하게 수술을 진행하기 위해 도봉구에서 노원구로 이동이 필요해 빠르게 이동시켜주실 수 있는 봉사자분을 찾습니다.',7, 36, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date)VALUES (33, 'PROGRESSING', '서울 도봉구', ' 서울 노원구', '2024-05-18', '2024-06-18', '미정', true, '동글이가 급하게 병원을 가야합니다. 동글이의 눈 주위 염증이 심해서 급하게 수술을 진행하기 위해 도봉구에서 노원구로 이동이 필요해 빠르게 이동시켜주실 수 있는 봉사자분을 찾습니다.',4, 33, now(), now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date)VALUES (34, 'PROGRESSING', '서울 도봉구', ' 서울 노원구', '2024-05-17', '2024-06-19', '미정', true, '동글이가 급하게 병원을 가야합니다. 동글이의 눈 주위 염증이 심해서 급하게 수술을 진행하기 위해 도봉구에서 노원구로 이동이 필요해 빠르게 이동시켜주실 수 있는 봉사자분을 찾습니다.',5, 34, now(), now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date)VALUES (35, 'PROGRESSING', '서울 도봉구', ' 서울 노원구', '2024-05-16', '2024-06-17', '미정', true, '동글이가 급하게 병원을 가야합니다. 동글이의 눈 주위 염증이 심해서 급하게 수술을 진행하기 위해 도봉구에서 노원구로 이동이 필요해 빠르게 이동시켜주실 수 있는 봉사자분을 찾습니다.',6, 35, now(), now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date)VALUES (36, 'PROGRESSING', '서울 도봉구', ' 서울 노원구', '2024-05-11', '2024-06-15', '미정', true, '동글이가 급하게 병원을 가야합니다. 동글이의 눈 주위 염증이 심해서 급하게 수술을 진행하기 위해 도봉구에서 노원구로 이동이 필요해 빠르게 이동시켜주실 수 있는 봉사자분을 찾습니다.',7, 36, now(), now(), now()); -- INSERT POST (status 3 - 봉사완료) -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date)VALUES (37, 'COMPLETED', '경기 수원시', '경기 용인시', '2023-10-25', '2023-10-25', '미정', true, '몽이와 함께 이동해 주실 분을 찾습니다~~^^ 몽이가 드디어 4개월만에 입양처가 결정되어 이동봉사가 필요하게 되었습니다.\n\n수원에서 용인까지 몽이의 새 가족을 찾기 위해 도와주실 수 있는 분이셨으면 좋겠습니다.',4, 37, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date)VALUES (37, 'COMPLETED', '경기 수원시', '경기 용인시', '2023-10-25', '2023-10-25', '미정', true, '몽이와 함께 이동해 주실 분을 찾습니다~~^^ 몽이가 드디어 4개월만에 입양처가 결정되어 이동봉사가 필요하게 되었습니다.\n\n수원에서 용인까지 몽이의 새 가족을 찾기 위해 도와주실 수 있는 분이셨으면 좋겠습니다.',4, 37, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date)VALUES (38, 'COMPLETED', '서울 서대문구', '경기 평택시', '2023-04-14', '2023-04-14', '미정', true, '코코가 겁이 좀 많아도 사람과 친해지면 잘 치대는 우리 먕이와 함께 평택으로 이동해주실 봉사자분을 애타게 찾아봅니다 ㅎㅎ',4, 38, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date)VALUES (38, 'COMPLETED', '서울 서대문구', '경기 평택시', '2023-04-14', '2023-04-14', '미정', true, '코코가 겁이 좀 많아도 사람과 친해지면 잘 치대는 우리 먕이와 함께 평택으로 이동해주실 봉사자분을 애타게 찾아봅니다 ㅎㅎ',4, 38, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date)VALUES (39, 'COMPLETED', '서울 강남구', '서울 서초구', '2023-05-17', '2023-05-17', '미정', true, '우리 귀여운 율무가 드디어 입양갑니다!! 소중한 입양처로 이동해 주실 이동봉사자 분을 찾아요. \n\n율무는 저희 보호소에서 제일 순하고 사람을 좋아하는 아이로, 처음 이동봉사를 하시는 분이더라도 쉽게 이동봉사를 진행해 보실 수 있을 거예요.',5, 39, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date)VALUES (39, 'COMPLETED', '서울 강남구', '서울 서초구', '2023-05-17', '2023-05-17', '미정', true, '우리 귀여운 율무가 드디어 입양갑니다!! 소중한 입양처로 이동해 주실 이동봉사자 분을 찾아요. \n\n율무는 저희 보호소에서 제일 순하고 사람을 좋아하는 아이로, 처음 이동봉사를 하시는 분이더라도 쉽게 이동봉사를 진행해 보실 수 있을 거예요.',5, 39, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date)VALUES (40, 'COMPLETED', '경기 용인시', '경기 성남시', '2023-09-09', '2023-09-09', '미정', true, '용인부터 성남까지 이동봉사 해주실 분을 찾습니다. 찹쌀이가 급하게 이동해야 할 사정이 생겨 이동봉사자를 구하게 되었습니다. 찹쌀이는 조용한 강아지로 이동봉사를 할 때 쉽게 진행하실 수 있을 거예요.',5, 40, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date)VALUES (40, 'COMPLETED', '경기 용인시', '경기 성남시', '2023-09-09', '2023-09-09', '미정', true, '용인부터 성남까지 이동봉사 해주실 분을 찾습니다. 찹쌀이가 급하게 이동해야 할 사정이 생겨 이동봉사자를 구하게 되었습니다. 찹쌀이는 조용한 강아지로 이동봉사를 할 때 쉽게 진행하실 수 있을 거예요.',5, 40, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date)VALUES (41, 'COMPLETED', '서울 동대문구', '경기 파주시', '2023-07-08', '2023-07-08', '미정', true, '수수가 건강이 악화되어 경기 파주에 있는 병원으로 급하게 이동이 필요한 상황입니다.\n\n최대한 빨리 이동이 필요한 상황으로 수수의 컨디션이 좋지 않아 그 부분을 이해해주실 수 있는 봉사자분이셨으면 좋겠습니다.',6, 41, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date)VALUES (41, 'COMPLETED', '서울 동대문구', '경기 파주시', '2023-07-08', '2023-07-08', '미정', true, '수수가 건강이 악화되어 경기 파주에 있는 병원으로 급하게 이동이 필요한 상황입니다.\n\n최대한 빨리 이동이 필요한 상황으로 수수의 컨디션이 좋지 않아 그 부분을 이해해주실 수 있는 봉사자분이셨으면 좋겠습니다.',6, 41, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date)VALUES (42, 'COMPLETED', '경기 오산시', '경기 화성시', '2023-09-24', '2023-09-24', '미정', true, '겁이 많은 우리 호두가 가족을 찾게 되었습니다. 오산에서 화성까지 짧은 거리지만 겁이 많은 우리 호두가 짖을 수도 있어 호두를 잘 데리고 가주실 이동봉사자 분을 구합니다.',6, 42, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date)VALUES (42, 'COMPLETED', '경기 오산시', '경기 화성시', '2023-09-24', '2023-09-24', '미정', true, '겁이 많은 우리 호두가 가족을 찾게 되었습니다. 오산에서 화성까지 짧은 거리지만 겁이 많은 우리 호두가 짖을 수도 있어 호두를 잘 데리고 가주실 이동봉사자 분을 구합니다.',6, 42, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date)VALUES (43, 'COMPLETED', '경기 양주시', '경기 의정부시', '2023-11-01', '2023-11-01', '미정', false, '감자가 급하게 병원을 가야합니다. 감자의 눈 주위 염증이 심해서 급하게 수술을 진행하기 위해 양주시에서 의정부시로 이동이 필요해 빠르게 이동시켜주실 수 있는 봉사자분을 찾습니다.',7, 43, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date)VALUES (43, 'COMPLETED', '경기 양주시', '경기 의정부시', '2023-11-01', '2023-11-01', '미정', false, '감자가 급하게 병원을 가야합니다. 감자의 눈 주위 염증이 심해서 급하게 수술을 진행하기 위해 양주시에서 의정부시로 이동이 필요해 빠르게 이동시켜주실 수 있는 봉사자분을 찾습니다.',7, 43, now(), now(), now()); -INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date)VALUES (44, 'COMPLETED', '경기 안산시', '서울 강남구', '2023-11-20', '2023-11-20', '미정', false, '병원에서 위탁처 이동입니다. 켄넬이 없어 개인 켄넬 준비가 필요합니다.',7, 44, now(), now()); +INSERT INTO post (id, status, departure_loc, arrival_loc, start_date, end_date, pick_up_time, is_kennel, content, intermediary_id, dog_id, created_date, modified_date, boost_date)VALUES (44, 'COMPLETED', '경기 안산시', '서울 강남구', '2023-11-20', '2023-11-20', '미정', false, '병원에서 위탁처 이동입니다. 켄넬이 없어 개인 켄넬 준비가 필요합니다.',7, 44, now(), now(), now()); -- INSERT POST_IMAGE diff --git a/src/test/java/com/pawwithu/connectdog/domain/post/controller/PostControllerTest.java b/src/test/java/com/pawwithu/connectdog/domain/post/controller/PostControllerTest.java index a8e08ebd..74dd208a 100644 --- a/src/test/java/com/pawwithu/connectdog/domain/post/controller/PostControllerTest.java +++ b/src/test/java/com/pawwithu/connectdog/domain/post/controller/PostControllerTest.java @@ -1,7 +1,6 @@ package com.pawwithu.connectdog.domain.post.controller; import com.fasterxml.jackson.databind.ObjectMapper; -import com.pawwithu.connectdog.domain.dog.entity.DogGender; import com.pawwithu.connectdog.domain.dog.entity.DogSize; import com.pawwithu.connectdog.domain.post.dto.response.*; import com.pawwithu.connectdog.domain.post.entity.PostStatus; @@ -16,6 +15,7 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.web.PageableHandlerMethodArgumentResolver; +import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.setup.MockMvcBuilders; @@ -29,8 +29,7 @@ import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @ExtendWith(MockitoExtension.class) @@ -226,4 +225,20 @@ void setUp() { get("/volunteers/posts/{postId}", postId) ); } + + @Test + void 이동봉사_공고_끌어올리기() throws Exception { + //given + Long postId = 1L; + + //when + ResultActions result = mockMvc.perform( + patch("/intermediaries/posts/{postId}/boost", postId) + .contentType(MediaType.APPLICATION_JSON) + ); + + //then + result.andExpect(status().isNoContent()); + verify(postService, times(1)).boostPost(anyString(), anyLong()); + } } \ No newline at end of file