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; namespace App\ScheduledNode;
use App\Plan\Plan;
use DateTimeImmutable; use DateTimeImmutable;
class CreateScheduledNodeDto class CreateScheduledNodeDto
{ {
public function __construct( public function __construct(
public DateTimeImmutable $date, public DateTimeImmutable $date,
public Plan $plan,
) {} ) {}
} }

View file

@ -2,6 +2,7 @@
namespace App\ScheduledNode; namespace App\ScheduledNode;
use App\Plan\Plan;
use DateTimeImmutable; use DateTimeImmutable;
class ScheduledNode class ScheduledNode
@ -9,5 +10,11 @@ class ScheduledNode
public function __construct( public function __construct(
private int $id, private int $id,
private DateTimeImmutable $date, private DateTimeImmutable $date,
private Plan $plan,
) {} ) {}
public function getPlan(): Plan
{
return $this->plan;
}
} }

View file

@ -2,6 +2,7 @@
namespace App\ScheduledNode\UseCases; namespace App\ScheduledNode\UseCases;
use App\Plan\PlanRepository;
use App\ScheduledNode\ScheduledNode; use App\ScheduledNode\ScheduledNode;
use App\ScheduledNode\CreateScheduledNodeDto; use App\ScheduledNode\CreateScheduledNodeDto;
use App\ScheduledNode\ScheduledNodeRepository; use App\ScheduledNode\ScheduledNodeRepository;
@ -10,14 +11,17 @@ class CreateScheduledNode
{ {
public function __construct( public function __construct(
private ScheduledNodeRepository $scheduledNodeRepo, private ScheduledNodeRepository $scheduledNodeRepo,
private PlanRepository $planRepo,
) {} ) {}
public function execute( public function execute(
CreateScheduledNodeRequest $request CreateScheduledNodeRequest $request
): ScheduledNode { ): ScheduledNode {
$plan = $this->planRepo->find($request->planId);
return $this->scheduledNodeRepo->create( return $this->scheduledNodeRepo->create(
new CreateScheduledNodeDto( new CreateScheduledNodeDto(
date: $request->date, date: $request->date,
plan: $plan,
) )
); );
} }

View file

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

View file

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