diff --git a/app/Plan/CreatePlanDto.php b/app/Plan/CreatePlanDto.php index 5aed171..370398b 100644 --- a/app/Plan/CreatePlanDto.php +++ b/app/Plan/CreatePlanDto.php @@ -2,9 +2,12 @@ namespace App\Plan; +use App\User\User; + class CreatePlanDto { public function __construct( public string $name, + public User $user, ) {} } diff --git a/app/Plan/Plan.php b/app/Plan/Plan.php index c9aa923..2ac1bbc 100644 --- a/app/Plan/Plan.php +++ b/app/Plan/Plan.php @@ -2,11 +2,14 @@ namespace App\Plan; +use App\User\User; + class Plan { public function __construct( private int $id, private string $name, + private User $user, ) {} public function getId(): int @@ -18,4 +21,9 @@ class Plan { return $this->name; } + + public function getUser(): User + { + return $this->user; + } } diff --git a/app/Plan/UseCases/CreatePlan.php b/app/Plan/UseCases/CreatePlan.php index 3780302..1c2ea6e 100644 --- a/app/Plan/UseCases/CreatePlan.php +++ b/app/Plan/UseCases/CreatePlan.php @@ -5,17 +5,22 @@ namespace App\Plan\UseCases; use App\Plan\CreatePlanDto; use App\Plan\Plan; use App\Plan\PlanRepository; +use App\User\UserRepository; class CreatePlan { public function __construct( private PlanRepository $planRepo, + private UserRepository $userRepo, ) {} public function execute(CreatePlanRequest $request): Plan { + $user = $this->userRepo->find($request->userId); + return $this->planRepo->create(new CreatePlanDto( name: $request->name, + user: $user, )); } } diff --git a/app/Plan/UseCases/CreatePlanRequest.php b/app/Plan/UseCases/CreatePlanRequest.php index 57f70e0..db9a51a 100644 --- a/app/Plan/UseCases/CreatePlanRequest.php +++ b/app/Plan/UseCases/CreatePlanRequest.php @@ -5,6 +5,7 @@ namespace App\Plan\UseCases; class CreatePlanRequest { public function __construct( + public int $userId, public string $name, ) {} } diff --git a/tests/Fakes/FakePlanRepository.php b/tests/Fakes/FakePlanRepository.php index e23db14..0e54ff3 100644 --- a/tests/Fakes/FakePlanRepository.php +++ b/tests/Fakes/FakePlanRepository.php @@ -16,6 +16,7 @@ class FakePlanRepository implements PlanRepository $plan = new Plan( id: $id, name: $dto->name, + user: $dto->user, ); $this->existingPlans[$id] = $plan;