diff --git a/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/application/dto/response/TimelineResponse.java b/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/application/dto/response/TimelineResponse.java index 5608bbdd..b5d64721 100644 --- a/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/application/dto/response/TimelineResponse.java +++ b/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/application/dto/response/TimelineResponse.java @@ -2,6 +2,7 @@ import com.whereyouad.WhereYouAd.domains.advertisement.domain.constant.BudgetFieldType; import com.whereyouad.WhereYouAd.domains.advertisement.domain.constant.Provider; +import com.whereyouad.WhereYouAd.domains.timeline.domain.constant.ComparisonPeriodType; import com.whereyouad.WhereYouAd.domains.timeline.domain.constant.MetricType; import com.whereyouad.WhereYouAd.domains.timeline.domain.constant.PerformanceStatus; @@ -38,6 +39,7 @@ public record TimelineDetailDTO( LocalDate startDate, LocalDate endDate, PerformanceStatus performanceStatus, + ComparisonPeriodType comparisonPeriodType, List metrics, String summary, List dailyTrend, diff --git a/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/application/mapper/TimelineConverter.java b/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/application/mapper/TimelineConverter.java index 4ecf88cf..705881cb 100644 --- a/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/application/mapper/TimelineConverter.java +++ b/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/application/mapper/TimelineConverter.java @@ -31,6 +31,7 @@ public static Timeline toTimeline( .useRoas(dto.metrics().contains(MetricType.ROAS)) .comparisonStartDate(comparisonStartDate) .comparisonEndDate(comparisonEndDate) + .comparisonPeriodType(dto.comparisonPeriodType()) .createdBy(userId) .organization(organization) .build(); @@ -67,6 +68,7 @@ public static TimelineResponse.TimelineDetailDTO toTimelineDetailDTO( timeline.getStartDate(), timeline.getEndDate(), timeline.getPerformanceStatus(), + timeline.getComparisonPeriodType(), metrics, timeline.getSummary(), dailyTrend, diff --git a/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/domain/service/TimelineServiceImpl.java b/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/domain/service/TimelineServiceImpl.java index d442eae5..469c98b7 100644 --- a/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/domain/service/TimelineServiceImpl.java +++ b/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/domain/service/TimelineServiceImpl.java @@ -173,7 +173,8 @@ public TimelineResponse.CreateResponseDTO updateTimeline(Long userId, Long orgId // 9. 엔티티 업데이트 timeline.update(dto.name(), dto.startDate(), dto.endDate(), useClick, useConversion, useImpression, useRoas, - comparisonDates.start(), comparisonDates.end()); + comparisonDates.start(), comparisonDates.end(), + dto.comparisonPeriodType()); // AI 요약도 초기화 timeline.updateSummary(null); diff --git a/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/persistence/entity/Timeline.java b/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/persistence/entity/Timeline.java index db322df5..3a51f73c 100644 --- a/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/persistence/entity/Timeline.java +++ b/src/main/java/com/whereyouad/WhereYouAd/domains/timeline/persistence/entity/Timeline.java @@ -1,6 +1,7 @@ package com.whereyouad.WhereYouAd.domains.timeline.persistence.entity; import com.whereyouad.WhereYouAd.domains.organization.persistence.entity.Organization; +import com.whereyouad.WhereYouAd.domains.timeline.domain.constant.ComparisonPeriodType; import com.whereyouad.WhereYouAd.domains.timeline.domain.constant.PerformanceStatus; import com.whereyouad.WhereYouAd.global.common.BaseEntity; import jakarta.persistence.*; @@ -53,6 +54,10 @@ public class Timeline extends BaseEntity { @Column(name = "comparison_end_date", nullable = false) private LocalDate comparisonEndDate; + @Enumerated(EnumType.STRING) + @Column(name = "comparison_period_type", nullable = false) + private ComparisonPeriodType comparisonPeriodType; + @Enumerated(EnumType.STRING) @Column(name = "performance_status") private PerformanceStatus performanceStatus; @@ -84,7 +89,8 @@ public void update(String name, boolean useImpression, boolean useRoas, LocalDate comparisonStartDate, - LocalDate comparisonEndDate + LocalDate comparisonEndDate, + ComparisonPeriodType comparisonPeriodType ) { this.name = name; this.startDate = startDate; @@ -95,5 +101,6 @@ public void update(String name, this.useRoas = useRoas; this.comparisonStartDate = comparisonStartDate; this.comparisonEndDate = comparisonEndDate; + this.comparisonPeriodType = comparisonPeriodType; } }