mirror of
https://github.com/won-ktds/smarketing-backend.git
synced 2026-01-21 19:16:23 +00:00
fix: build
This commit is contained in:
parent
70ea983da4
commit
4c5cfcbbc7
@ -17,12 +17,4 @@ public interface AiPosterGenerator {
|
||||
* @return 생성된 포스터 이미지 URL
|
||||
*/
|
||||
String generatePoster(PosterContentCreateRequest request);
|
||||
|
||||
/**
|
||||
* 다양한 사이즈의 포스터 생성
|
||||
*
|
||||
* @param baseImage 기본 이미지
|
||||
* @return 사이즈별 포스터 URL 맵
|
||||
*/
|
||||
Map<String, String> generatePosterSizes(String baseImage);
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import com.won.smarketing.content.domain.service.AiPosterGenerator; // 도메인
|
||||
import com.won.smarketing.content.presentation.dto.PosterContentCreateRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
@ -23,7 +24,7 @@ public class PythonAiPosterGenerator implements AiPosterGenerator {
|
||||
|
||||
private final WebClient webClient;
|
||||
|
||||
@Value("${external.ai-service.base-url:http://20.249.139.88:5001}")
|
||||
@Value("${external.ai-service.base-url}")
|
||||
private String aiServiceBaseUrl;
|
||||
|
||||
/**
|
||||
@ -69,22 +70,10 @@ public class PythonAiPosterGenerator implements AiPosterGenerator {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 다양한 사이즈의 포스터 생성 (사용하지 않음)
|
||||
* 1개의 이미지만 생성하므로 빈 맵 반환
|
||||
*
|
||||
* @param baseImage 기본 이미지 URL
|
||||
* @return 빈 맵
|
||||
*/
|
||||
@Override
|
||||
public Map<String, String> generatePosterSizes(String baseImage) {
|
||||
log.info("포스터 사이즈 변환 기능은 사용하지 않음: baseImage={}", baseImage);
|
||||
return new HashMap<>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Python AI 서비스 요청 데이터 구성
|
||||
* Python 서비스의 PosterContentGetRequest 모델에 맞춤
|
||||
* 카테고리,
|
||||
*/
|
||||
private Map<String, Object> buildRequestBody(PosterContentCreateRequest request) {
|
||||
Map<String, Object> requestBody = new HashMap<>();
|
||||
@ -92,7 +81,6 @@ public class PythonAiPosterGenerator implements AiPosterGenerator {
|
||||
// 기본 정보
|
||||
requestBody.put("title", request.getTitle());
|
||||
requestBody.put("category", request.getCategory());
|
||||
requestBody.put("contentType", request.getContentType());
|
||||
|
||||
// 이미지 정보
|
||||
if (request.getImages() != null && !request.getImages().isEmpty()) {
|
||||
@ -109,16 +97,6 @@ public class PythonAiPosterGenerator implements AiPosterGenerator {
|
||||
requestBody.put("requirement", request.getRequirement());
|
||||
}
|
||||
|
||||
// 톤앤매너
|
||||
if (request.getToneAndManner() != null) {
|
||||
requestBody.put("toneAndManner", request.getToneAndManner());
|
||||
}
|
||||
|
||||
// 감정 강도
|
||||
if (request.getEmotionIntensity() != null) {
|
||||
requestBody.put("emotionIntensity", request.getEmotionIntensity());
|
||||
}
|
||||
|
||||
// 메뉴명
|
||||
if (request.getMenuName() != null) {
|
||||
requestBody.put("menuName", request.getMenuName());
|
||||
@ -129,11 +107,6 @@ public class PythonAiPosterGenerator implements AiPosterGenerator {
|
||||
requestBody.put("eventName", request.getEventName());
|
||||
}
|
||||
|
||||
// 날짜 정보 (LocalDate를 String으로 변환)
|
||||
if (request.getStartDate() != null) {
|
||||
requestBody.put("startDate", request.getStartDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
||||
}
|
||||
|
||||
if (request.getEndDate() != null) {
|
||||
requestBody.put("endDate", request.getEndDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
|
||||
}
|
||||
|
||||
@ -41,33 +41,26 @@ public class PosterContentCreateRequest {
|
||||
@NotNull(message = "홍보 종료일은 필수입니다")
|
||||
private LocalDateTime promotionEndDate;
|
||||
|
||||
@Schema(description = "메뉴명 (메뉴 홍보시)", example = "카페라떼")
|
||||
private String menuName;
|
||||
|
||||
@Schema(description = "이벤트명 (이벤트 홍보시)", example = "신메뉴 출시 이벤트")
|
||||
private String eventName;
|
||||
|
||||
@Schema(description = "이미지 스타일", example = "모던")
|
||||
private String imageStyle;
|
||||
|
||||
@Schema(description = "프로모션 유형", example = "할인 정보")
|
||||
private String promotionType;
|
||||
|
||||
@Schema(description = "감정 강도", example = "보통")
|
||||
private String emotionIntensity;
|
||||
|
||||
@Schema(description = "업로드된 이미지 URL 목록", required = true)
|
||||
@NotNull(message = "이미지는 1개 이상 필수입니다")
|
||||
@Size(min = 1, message = "이미지는 1개 이상 업로드해야 합니다")
|
||||
private List<String> images;
|
||||
|
||||
// CreationConditions에 필요한 필드들
|
||||
@Schema(description = "콘텐츠 카테고리", example = "이벤트")
|
||||
private String category;
|
||||
|
||||
@Schema(description = "구체적인 요구사항", example = "신메뉴 출시 이벤트 포스터를 만들어주세요")
|
||||
private String requirement;
|
||||
|
||||
@Schema(description = "톤앤매너", example = "전문적")
|
||||
private String toneAndManner;
|
||||
|
||||
@Schema(description = "이벤트 시작일", example = "2024-01-15")
|
||||
private LocalDate startDate;
|
||||
|
||||
@ -76,4 +69,5 @@ public class PosterContentCreateRequest {
|
||||
|
||||
@Schema(description = "사진 스타일", example = "밝고 화사한")
|
||||
private String photoStyle;
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user