From 8b77c288d6c0fd1e4c801bd93091e699ca83c37e Mon Sep 17 00:00:00 2001 From: parkjaehak Date: Mon, 10 Feb 2025 16:32:33 +0900 Subject: [PATCH 1/2] =?UTF-8?q?CLAP-367=20Fix:=20=EC=9E=91=EC=97=85=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=EC=8B=9C=20soft=20delete=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../outbound/persistense/entity/task/TaskEntity.java | 7 +++++++ .../persistense/mapper/TaskPersistenceMapper.java | 10 ++++++++++ src/main/java/clap/server/domain/model/task/Task.java | 1 + .../dev/V20250210367__Add_Is_Deleted_From_Task.sql | 2 ++ 4 files changed, 20 insertions(+) create mode 100644 src/main/resources/db/migration/dev/V20250210367__Add_Is_Deleted_From_Task.sql diff --git a/src/main/java/clap/server/adapter/outbound/persistense/entity/task/TaskEntity.java b/src/main/java/clap/server/adapter/outbound/persistense/entity/task/TaskEntity.java index d5f465c0..6227a4ea 100644 --- a/src/main/java/clap/server/adapter/outbound/persistense/entity/task/TaskEntity.java +++ b/src/main/java/clap/server/adapter/outbound/persistense/entity/task/TaskEntity.java @@ -5,9 +5,11 @@ import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus; import jakarta.persistence.*; import lombok.AccessLevel; +import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import org.hibernate.annotations.SQLRestriction; import java.time.LocalDateTime; @@ -16,6 +18,7 @@ @Getter @SuperBuilder @NoArgsConstructor(access = AccessLevel.PROTECTED) +@SQLRestriction("is_deleted = false") public class TaskEntity extends BaseTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -68,4 +71,8 @@ public class TaskEntity extends BaseTimeEntity { @Column(nullable = false) private int attachmentCount; + + @Column(name="is_deleted", nullable = false) + @Builder.Default + private boolean isDeleted = Boolean.FALSE; } diff --git a/src/main/java/clap/server/adapter/outbound/persistense/mapper/TaskPersistenceMapper.java b/src/main/java/clap/server/adapter/outbound/persistense/mapper/TaskPersistenceMapper.java index 053d8290..1f312abe 100644 --- a/src/main/java/clap/server/adapter/outbound/persistense/mapper/TaskPersistenceMapper.java +++ b/src/main/java/clap/server/adapter/outbound/persistense/mapper/TaskPersistenceMapper.java @@ -1,10 +1,20 @@ package clap.server.adapter.outbound.persistense.mapper; +import clap.server.adapter.outbound.persistense.entity.task.CommentEntity; import clap.server.adapter.outbound.persistense.entity.task.TaskEntity; import clap.server.adapter.outbound.persistense.mapper.common.PersistenceMapper; +import clap.server.domain.model.task.Comment; import clap.server.domain.model.task.Task; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; @Mapper(componentModel = "spring", uses = {MemberPersistenceMapper.class, LabelPersistenceMapper.class, CategoryPersistenceMapper.class}) public interface TaskPersistenceMapper extends PersistenceMapper { + @Override + @Mapping(source = "deleted", target = "isDeleted") + Task toDomain(final TaskEntity entity); + + @Override + @Mapping(source = "deleted", target = "isDeleted") + TaskEntity toEntity(final Task domain); } diff --git a/src/main/java/clap/server/domain/model/task/Task.java b/src/main/java/clap/server/domain/model/task/Task.java index 0352b2e0..ddb96bca 100644 --- a/src/main/java/clap/server/domain/model/task/Task.java +++ b/src/main/java/clap/server/domain/model/task/Task.java @@ -36,6 +36,7 @@ public class Task extends BaseTime { private LocalDateTime dueDate; private LocalDateTime finishedAt; private int attachmentCount; + private boolean isDeleted; public static Task createTask(Member member, Category category, String title, String description, int attachmentCount) { return Task.builder() diff --git a/src/main/resources/db/migration/dev/V20250210367__Add_Is_Deleted_From_Task.sql b/src/main/resources/db/migration/dev/V20250210367__Add_Is_Deleted_From_Task.sql new file mode 100644 index 00000000..bcda8a24 --- /dev/null +++ b/src/main/resources/db/migration/dev/V20250210367__Add_Is_Deleted_From_Task.sql @@ -0,0 +1,2 @@ +ALTER TABLE task + ADD COLUMN is_deleted BOOLEAN DEFAULT FALSE; \ No newline at end of file From cdabe2ba873086d2dab2c663c44edd941ff5e49d Mon Sep 17 00:00:00 2001 From: parkjaehak Date: Mon, 10 Feb 2025 16:34:50 +0900 Subject: [PATCH 2/2] =?UTF-8?q?CLAP-367=20Fix:=20=EC=9E=91=EC=97=85=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20=ED=98=B8=EC=B6=9C=20=EC=8B=9C=20isDeleted?= =?UTF-8?q?=20false=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/clap/server/domain/model/task/Task.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/clap/server/domain/model/task/Task.java b/src/main/java/clap/server/domain/model/task/Task.java index ddb96bca..d3b80a16 100644 --- a/src/main/java/clap/server/domain/model/task/Task.java +++ b/src/main/java/clap/server/domain/model/task/Task.java @@ -117,6 +117,7 @@ public void cancelTask(Long requesterId) { throw new DomainException(NOT_A_REQUESTER); } this.taskStatus = TaskStatus.TERMINATED; + this.isDeleted = true; this.finishedAt = LocalDateTime.now(); } }