diff --git a/app/ScheduledNode/CreateScheduledNodeDto.php b/app/ScheduledNode/CreateScheduledNodeDto.php index 44776ff..5e7a695 100644 --- a/app/ScheduledNode/CreateScheduledNodeDto.php +++ b/app/ScheduledNode/CreateScheduledNodeDto.php @@ -2,11 +2,13 @@ namespace App\ScheduledNode; +use App\Plan\Plan; use DateTimeImmutable; class CreateScheduledNodeDto { public function __construct( public DateTimeImmutable $date, + public Plan $plan, ) {} } diff --git a/app/ScheduledNode/ScheduledNode.php b/app/ScheduledNode/ScheduledNode.php index f5ba0c9..5bf764a 100644 --- a/app/ScheduledNode/ScheduledNode.php +++ b/app/ScheduledNode/ScheduledNode.php @@ -2,6 +2,7 @@ namespace App\ScheduledNode; +use App\Plan\Plan; use DateTimeImmutable; class ScheduledNode @@ -9,5 +10,11 @@ class ScheduledNode public function __construct( private int $id, private DateTimeImmutable $date, + private Plan $plan, ) {} + + public function getPlan(): Plan + { + return $this->plan; + } } diff --git a/app/ScheduledNode/UseCases/CreateScheduledNode.php b/app/ScheduledNode/UseCases/CreateScheduledNode.php index 89b8cc9..05e6e78 100644 --- a/app/ScheduledNode/UseCases/CreateScheduledNode.php +++ b/app/ScheduledNode/UseCases/CreateScheduledNode.php @@ -2,6 +2,7 @@ namespace App\ScheduledNode\UseCases; +use App\Plan\PlanRepository; use App\ScheduledNode\ScheduledNode; use App\ScheduledNode\CreateScheduledNodeDto; use App\ScheduledNode\ScheduledNodeRepository; @@ -10,14 +11,17 @@ class CreateScheduledNode { public function __construct( private ScheduledNodeRepository $scheduledNodeRepo, + private PlanRepository $planRepo, ) {} public function execute( CreateScheduledNodeRequest $request ): ScheduledNode { + $plan = $this->planRepo->find($request->planId); return $this->scheduledNodeRepo->create( new CreateScheduledNodeDto( date: $request->date, + plan: $plan, ) ); } diff --git a/app/ScheduledNode/UseCases/CreateScheduledNodeRequest.php b/app/ScheduledNode/UseCases/CreateScheduledNodeRequest.php index 4f5d836..153dddc 100644 --- a/app/ScheduledNode/UseCases/CreateScheduledNodeRequest.php +++ b/app/ScheduledNode/UseCases/CreateScheduledNodeRequest.php @@ -8,5 +8,6 @@ class CreateScheduledNodeRequest { public function __construct( public DateTimeImmutable $date, + public int $planId, ) {} } diff --git a/tests/Fakes/FakeScheduledNodeRepository.php b/tests/Fakes/FakeScheduledNodeRepository.php index 6968175..1551b3a 100644 --- a/tests/Fakes/FakeScheduledNodeRepository.php +++ b/tests/Fakes/FakeScheduledNodeRepository.php @@ -16,6 +16,7 @@ class FakeScheduledNodeRepository implements ScheduledNodeRepository $scheduledNode = new ScheduledNode( id: $id, date: $dto->date, + plan: $dto->plan, ); $this->existingScheduledNodes[$id] = $scheduledNode;