diff --git a/src/main/java/com/dongsoop/dongsoop/calendar/dto/CreateMemberScheduleRequest.java b/src/main/java/com/dongsoop/dongsoop/calendar/dto/CreateMemberScheduleRequest.java index 609bbb1a1..9b55bac5d 100644 --- a/src/main/java/com/dongsoop/dongsoop/calendar/dto/CreateMemberScheduleRequest.java +++ b/src/main/java/com/dongsoop/dongsoop/calendar/dto/CreateMemberScheduleRequest.java @@ -2,6 +2,7 @@ import com.dongsoop.dongsoop.calendar.entity.MemberSchedule; import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; import java.time.LocalDateTime; import lombok.AllArgsConstructor; import lombok.Getter; @@ -27,12 +28,16 @@ public class CreateMemberScheduleRequest { @NotNull private LocalDateTime endAt; + @Pattern(regexp = "^[A-Fa-f0-9]{6}$", message = "색상은 # 없이 6자리 HEX 형식이어야 합니다 (예: FFFFFF)") + private String color; + public MemberSchedule toEntity() { return MemberSchedule.builder() .title(title) .location(location) .startAt(startAt) .endAt(endAt) + .color(color) .build(); } } diff --git a/src/main/java/com/dongsoop/dongsoop/calendar/dto/MemberScheduleUpdateRequest.java b/src/main/java/com/dongsoop/dongsoop/calendar/dto/MemberScheduleUpdateRequest.java index a58da9177..ddf24dbec 100644 --- a/src/main/java/com/dongsoop/dongsoop/calendar/dto/MemberScheduleUpdateRequest.java +++ b/src/main/java/com/dongsoop/dongsoop/calendar/dto/MemberScheduleUpdateRequest.java @@ -1,5 +1,6 @@ package com.dongsoop.dongsoop.calendar.dto; +import jakarta.validation.constraints.Pattern; import java.time.LocalDateTime; import lombok.AllArgsConstructor; import lombok.Getter; @@ -20,4 +21,7 @@ public class MemberScheduleUpdateRequest { private LocalDateTime startAt; private LocalDateTime endAt; + + @Pattern(regexp = "^[A-Fa-f0-9]{6}$", message = "색상은 # 없이 6자리 HEX 형식이어야 합니다 (예: FFFFFF)") + private String color; } diff --git a/src/main/java/com/dongsoop/dongsoop/calendar/dto/ScheduleDetails.java b/src/main/java/com/dongsoop/dongsoop/calendar/dto/ScheduleDetails.java index 8c5b8e93f..c82ab2f5f 100644 --- a/src/main/java/com/dongsoop/dongsoop/calendar/dto/ScheduleDetails.java +++ b/src/main/java/com/dongsoop/dongsoop/calendar/dto/ScheduleDetails.java @@ -24,4 +24,6 @@ public class ScheduleDetails { private LocalDateTime endAt; private ScheduleType type; + + private String color; } diff --git a/src/main/java/com/dongsoop/dongsoop/calendar/entity/MemberSchedule.java b/src/main/java/com/dongsoop/dongsoop/calendar/entity/MemberSchedule.java index 05eb76f17..7771ab2c1 100644 --- a/src/main/java/com/dongsoop/dongsoop/calendar/entity/MemberSchedule.java +++ b/src/main/java/com/dongsoop/dongsoop/calendar/entity/MemberSchedule.java @@ -50,6 +50,9 @@ public class MemberSchedule extends BaseEntity { @Column(name = "end_at", nullable = false) private LocalDateTime endAt; + @Column(name = "color", length = 6) + private String color; + @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id", nullable = false) @Getter @@ -72,6 +75,7 @@ public ScheduleDetails toDetails() { .startAt(startAt) .endAt(endAt) .type(ScheduleType.MEMBER) + .color(color) .build(); } @@ -91,5 +95,9 @@ public void update(MemberScheduleUpdateRequest request) { if (request.getEndAt() != null) { this.endAt = request.getEndAt(); } + + if (request.getColor() != null) { + this.color = request.getColor(); + } } } diff --git a/src/test/java/com/dongsoop/dongsoop/notification/CalendarNotificationSettingTest.java b/src/test/java/com/dongsoop/dongsoop/notification/CalendarNotificationSettingTest.java index 358ca8bbd..fb8ba226a 100644 --- a/src/test/java/com/dongsoop/dongsoop/notification/CalendarNotificationSettingTest.java +++ b/src/test/java/com/dongsoop/dongsoop/notification/CalendarNotificationSettingTest.java @@ -110,11 +110,11 @@ void setUp() { // 회원 일정 추가 MemberSchedule memberSchedule1 = new MemberSchedule(null, "title", "content", LocalDateTime.now(), - LocalDateTime.now(), member1); + LocalDateTime.now(), null, member1); MemberSchedule memberSchedule2 = new MemberSchedule(null, "title", "content", LocalDateTime.now(), - LocalDateTime.now(), member2); + LocalDateTime.now(), null, member2); MemberSchedule memberSchedule3 = new MemberSchedule(null, "title", "content", LocalDateTime.now(), - LocalDateTime.now(), member3); + LocalDateTime.now(), null, member3); memberScheduleRepository.saveAll(List.of(memberSchedule1, memberSchedule2, memberSchedule3));