diff --git a/backend/src/main/java/net/beetechgroup/beetask/interfaceadapters/controllers/task/CreateTaskRequest.java b/backend/src/main/java/net/beetechgroup/beetask/interfaceadapters/controllers/task/CreateTaskRequest.java index 5ad2956..79b3ea4 100644 --- a/backend/src/main/java/net/beetechgroup/beetask/interfaceadapters/controllers/task/CreateTaskRequest.java +++ b/backend/src/main/java/net/beetechgroup/beetask/interfaceadapters/controllers/task/CreateTaskRequest.java @@ -9,5 +9,5 @@ public record CreateTaskRequest( String description, TaskStatus status, Long projectId, - List history) { + List history) { } diff --git a/backend/src/main/java/net/beetechgroup/beetask/interfaceadapters/controllers/task/TaskControllerMapper.java b/backend/src/main/java/net/beetechgroup/beetask/interfaceadapters/controllers/task/TaskControllerMapper.java index ad41b9f..ded52f9 100644 --- a/backend/src/main/java/net/beetechgroup/beetask/interfaceadapters/controllers/task/TaskControllerMapper.java +++ b/backend/src/main/java/net/beetechgroup/beetask/interfaceadapters/controllers/task/TaskControllerMapper.java @@ -16,7 +16,10 @@ public class TaskControllerMapper { request.description(), request.status(), request.projectId(), - userEmail + userEmail, + Objects.nonNull(request.history()) ? request.history().stream() + .map(h -> new TaskHistoryItemInput(h.id(), h.startAt(), h.endAt())) + .toList() : null ); } diff --git a/backend/src/main/java/net/beetechgroup/beetask/usecase/task/create/CreateTaskInput.java b/backend/src/main/java/net/beetechgroup/beetask/usecase/task/create/CreateTaskInput.java index 9bcaa28..8d66c27 100644 --- a/backend/src/main/java/net/beetechgroup/beetask/usecase/task/create/CreateTaskInput.java +++ b/backend/src/main/java/net/beetechgroup/beetask/usecase/task/create/CreateTaskInput.java @@ -1,11 +1,14 @@ package net.beetechgroup.beetask.usecase.task.create; +import java.util.List; import net.beetechgroup.beetask.entities.task.TaskStatus; +import net.beetechgroup.beetask.usecase.task.update.TaskHistoryItemInput; public record CreateTaskInput( String title, String description, TaskStatus status, Long projectId, - String userEmail) { + String userEmail, + List history) { } diff --git a/backend/src/main/java/net/beetechgroup/beetask/usecase/task/create/CreateTaskUseCase.java b/backend/src/main/java/net/beetechgroup/beetask/usecase/task/create/CreateTaskUseCase.java index 097d2fd..a3c136d 100644 --- a/backend/src/main/java/net/beetechgroup/beetask/usecase/task/create/CreateTaskUseCase.java +++ b/backend/src/main/java/net/beetechgroup/beetask/usecase/task/create/CreateTaskUseCase.java @@ -1,8 +1,10 @@ package net.beetechgroup.beetask.usecase.task.create; +import java.util.List; import java.util.Objects; import net.beetechgroup.beetask.entities.Project; import net.beetechgroup.beetask.entities.task.Task; +import net.beetechgroup.beetask.entities.task.TaskHistoryItem; import net.beetechgroup.beetask.usecase.repository.ProjectRepository; import net.beetechgroup.beetask.usecase.repository.TaskRepository; import net.beetechgroup.beetask.usecase.repository.UserRepository; @@ -42,6 +44,16 @@ public class CreateTaskUseCase { return new IllegalArgumentException("Usuário não encontrado: " + input.userEmail()); })); + if (Objects.nonNull(input.history())) { + List historyItems = input.history().stream().map(h -> { + TaskHistoryItem item = new TaskHistoryItem(); + item.setStartAt(h.startAt()); + item.setEndAt(h.endAt()); + return item; + }).toList(); + task.getHistory().addAll(historyItems); + } + CreateTaskOutput output = CreateTaskMapper.toCreateTaskOutput(taskRepository.saveTask(task)); LOGGER.infof("Task %d created for user %s", output.id(), input.userEmail()); return output;