diff --git a/web_app/src/DataFixtures/WishListMemberFixtures.php b/web_app/src/DataFixtures/WishListMemberFixtures.php index 222da34f0c8b37e5a08b07156528a5fd9453c150..b2100cd6040a69f6fdbf9d855a24c6bbd6aa37b6 100644 --- a/web_app/src/DataFixtures/WishListMemberFixtures.php +++ b/web_app/src/DataFixtures/WishListMemberFixtures.php @@ -2,16 +2,65 @@ namespace App\DataFixtures; +use App\Entity\WishListMember; +use App\Entity\User; +use App\Entity\WishList; use Doctrine\Bundle\FixturesBundle\Fixture; use Doctrine\Persistence\ObjectManager; +use Doctrine\Common\DataFixtures\DependentFixtureInterface; -class WishListMemberFixtures extends Fixture +class WishListMemberFixtures extends Fixture implements DependentFixtureInterface { public function load(ObjectManager $manager): void { - // $product = new Product(); - // $manager->persist($product); + // Fetch existing users and wishlists from the database + $users = $manager->getRepository(User::class)->findAll(); + $wishLists = $manager->getRepository(WishList::class)->findAll(); + + if (empty($users) || empty($wishLists)) { + throw new \Exception('Make sure you have users and wishlists in the database before running this fixture.'); + } + + $wishListMembersData = [ + [ + 'wishList' => $wishLists[0], + 'user' => $users[0], + 'can_edit' => true, + 'is_accepted' => true, + ], + [ + 'wishList' => $wishLists[0], + 'user' => $users[1], + 'can_edit' => false, + 'is_accepted' => true, + ], + [ + 'wishList' => $wishLists[1], + 'user' => $users[2], + 'can_edit' => true, + 'is_accepted' => false, + ] + ]; + + foreach ($wishListMembersData as $data) { + $wishListMember = new WishListMember(); + $wishListMember->setWishList($data['wishList']); + $wishListMember->setUser($data['user']); + $wishListMember->setCanEdit($data['can_edit']); + $wishListMember->setIsAccepted($data['is_accepted']); + $wishListMember->setCreatedAt(new \DateTimeImmutable()); + + $manager->persist($wishListMember); + } $manager->flush(); } -} + + public function getDependencies(): array + { + return [ + UserFixtures::class, + WishListFixtures::class, + ]; + } +} \ No newline at end of file diff --git a/web_app/src/Entity/WishList.php b/web_app/src/Entity/WishList.php index b01613c8625fc8bce3247ec9b8c6f088d569d9f7..cb593dc9e5c773d0d995bb87dee502684fdfe5c9 100644 --- a/web_app/src/Entity/WishList.php +++ b/web_app/src/Entity/WishList.php @@ -51,7 +51,7 @@ class WishList return $this->user; } - public function setUser(?User $user): static + public function setUser(User $user): static { $this->user = $user; diff --git a/web_app/src/Entity/WishListMember.php b/web_app/src/Entity/WishListMember.php index 2d007a2c570ab9366c77ee3b0939fdc54bf268d1..5143481d7fd0aa9453e98027aaec09b4989c4331 100644 --- a/web_app/src/Entity/WishListMember.php +++ b/web_app/src/Entity/WishListMember.php @@ -15,11 +15,11 @@ class WishListMember #[ORM\ManyToOne(targetEntity: WishList::class)] #[ORM\JoinColumn(nullable: false)] - private ?int $wishList = null; + private ?WishList $wishList = null; #[ORM\ManyToOne(targetEntity: User::class)] #[ORM\JoinColumn(nullable: false)] - private ?int $user = null; + private ?User $user = null; #[ORM\Column] private ?bool $can_edit = null; @@ -35,24 +35,24 @@ class WishListMember return $this->id; } - public function getWishList(): ?int + public function getWishList(): ?WishList { return $this->wishList; } - public function setWishList(int $wishList): static + public function setWishList(WishList $wishList): static { $this->wishList = $wishList; return $this; } - public function getUser(): ?int + public function getUser(): ?User { return $this->user; } - public function setUser(int $user): static + public function setUser(User $user): static { $this->user = $user;