add plan to scheduled node

This commit is contained in:
Yisroel Baum 2026-02-25 10:16:59 +02:00
parent fd0ee57149
commit 412a74e390
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
5 changed files with 15 additions and 0 deletions

View file

@ -2,11 +2,13 @@
namespace App\ScheduledNode;
use App\Plan\Plan;
use DateTimeImmutable;
class CreateScheduledNodeDto
{
public function __construct(
public DateTimeImmutable $date,
public Plan $plan,
) {}
}

View file

@ -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;
}
}

View file

@ -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,
)
);
}

View file

@ -8,5 +8,6 @@ class CreateScheduledNodeRequest
{
public function __construct(
public DateTimeImmutable $date,
public int $planId,
) {}
}

View file

@ -16,6 +16,7 @@ class FakeScheduledNodeRepository implements ScheduledNodeRepository
$scheduledNode = new ScheduledNode(
id: $id,
date: $dto->date,
plan: $dto->plan,
);
$this->existingScheduledNodes[$id] = $scheduledNode;