From a99d63b70d8b773adf840bd270167730bf0bd68f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EA=B7=9C?= Date: Tue, 7 Jul 2026 09:53:23 +0900 Subject: [PATCH 1/2] =?UTF-8?q?:sparkles:=20feat:=20=ED=83=80=EC=9E=84?= =?UTF-8?q?=EB=9D=BC=EC=9D=B8=20=EC=97=94=ED=8B=B0=ED=8B=B0=EC=97=90=20com?= =?UTF-8?q?parisonPeriodType=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domains/timeline/persistence/entity/Timeline.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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; } } From 028399f57f4820f3b871ca70d6a96a4a75458b8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EA=B7=9C?= Date: Tue, 7 Jul 2026 10:05:43 +0900 Subject: [PATCH 2/2] =?UTF-8?q?:sparkles:=20feat:=20=ED=83=80=EC=9E=84?= =?UTF-8?q?=EB=9D=BC=EC=9D=B8=20=EC=83=81=EC=84=B8=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EC=9D=91=EB=8B=B5=EC=97=90=20comparisonPeriodType=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../timeline/application/dto/response/TimelineResponse.java | 2 ++ .../domains/timeline/application/mapper/TimelineConverter.java | 2 ++ .../domains/timeline/domain/service/TimelineServiceImpl.java | 3 ++- 3 files changed, 6 insertions(+), 1 deletion(-) 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);