Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions src/main/java/hyu/erica/capstone/client/PlanClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,19 @@

import hyu.erica.capstone.web.dto.client.AttractionRequestDTO;
import hyu.erica.capstone.web.dto.client.RestaurantRequestDTO;
import hyu.erica.capstone.web.dto.client.StyleRequestDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(name = "planApiClient", url = "${plan.api.url}")
public interface PlanClient {

@GetMapping("/restaurants/search")
RestaurantRequestDTO getRestaurants(@RequestParam String query);
@PostMapping("/restaurants/search")
RestaurantRequestDTO getRestaurants(@RequestBody StyleRequestDTO request);

@GetMapping("/attraction/search")
AttractionRequestDTO getAttractions(@RequestParam String query);
@PostMapping("/attraction/search")
AttractionRequestDTO getAttractions(@RequestBody StyleRequestDTO request);
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
import hyu.erica.capstone.repository.UserRepository;
import hyu.erica.capstone.web.dto.client.AttractionRequestDTO;
import hyu.erica.capstone.web.dto.client.RestaurantRequestDTO;
import hyu.erica.capstone.web.dto.client.StyleRequestDTO;
import hyu.erica.capstone.web.dto.style.request.UserStyleRequestDTO;
import java.util.concurrent.CompletableFuture;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand Down Expand Up @@ -52,8 +54,10 @@ public void handleTripPlanDetails(Long tripPlanId, Style style, User user) {


try {
String prompt = buildPrompt(style);

StyleRequestDTO prompt = StyleRequestDTO.of(style.getCity().name(), style.getStartDate(),
style.getEndDate(), style.getPreferActivity(), style.getRequirement());

// 외부 API 병렬 호출
CompletableFuture<AttractionRequestDTO> attractionFuture =
CompletableFuture.supplyAsync(() -> planClient.getAttractions(prompt));
Expand Down Expand Up @@ -98,13 +102,4 @@ public void handleTripPlanDetails(Long tripPlanId, Style style, User user) {
tripPlanRepository.save(tripPlan);
}

private String buildPrompt(Style style) {
return new StringBuilder()
.append("여행 지역 : ").append(style.getCity().name()).append("\n")
.append("시작 날짜 : ").append(style.getStartDate()).append("\n")
.append("종료 날짜 : ").append(style.getEndDate()).append("\n")
.append("선호 활동 : ").append(style.getPreferActivity()).append("\n")
.append("추가 요구 사항 : ").append(style.getRequirement())
.toString();
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
package hyu.erica.capstone.web.dto.client;

import jakarta.persistence.criteria.CriteriaBuilder.In;
Copy link

Copilot AI Mar 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The import 'jakarta.persistence.criteria.CriteriaBuilder.In' is not used in the code; please remove it to clean up the file.

Suggested change
import jakarta.persistence.criteria.CriteriaBuilder.In;

Copilot uses AI. Check for mistakes.
import java.util.List;

public record AttractionRequestDTO (String answer, List<Long> attraction_ids) {
public record AttractionRequestDTO (List<AttractionDetailDTO> recommendations, List<Long> attraction_ids) {

private record AttractionDetailDTO (String name, String description, Integer index) {

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,9 @@

import java.util.List;

public record RestaurantRequestDTO(String answer, List<Long> restaurant_ids) {
public record RestaurantRequestDTO(List<RestaurantDetailDTO> recommendations, List<Long> restaurant_ids) {

private record RestaurantDetailDTO (String name, String description, Integer index) {

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package hyu.erica.capstone.web.dto.client;

import java.time.LocalDate;

public record StyleRequestDTO (String city, LocalDate startDate, LocalDate endDate,
String preferActivity, String requirement){

public static StyleRequestDTO of(String city, LocalDate startDate, LocalDate endDate, String preferActivity, String requirement){
return new StyleRequestDTO(city, startDate, endDate, preferActivity, requirement);
}
}