diff --git a/server/README.md b/server/README.md
index 6220432d6181673b57046df2a4816cfb593950bf..f5271fa6995e9dc301bc55e52d2165eb5f492e48 100644
--- a/server/README.md
+++ b/server/README.md
@@ -27,12 +27,12 @@ docker exec -it symfony_app php bin/console doctrine:migrations:migrate
 
 Rollback to the previous migrate version
 ```
-php bin/console doctrine:migrations:migrate prev
+docker exec -it symfony_app php bin/console doctrine:migrations:migrate prev
 ```
 
 To add sample data per dafault to the database (after finished editing DataFixtures/ files)
 Note: Add the `--append` flag if you don't want to erase the records already created.
 Also add `--group` to apply and specific file.
 ```
-php bin/console doctrine:fixtures:load
+docker exec -it symfony_app php bin/console doctrine:fixtures:load
 ```
\ No newline at end of file
diff --git a/server/web_app/migrations/Version20250225195907.php b/server/web_app/migrations/Version20250228192241.php
similarity index 87%
rename from server/web_app/migrations/Version20250225195907.php
rename to server/web_app/migrations/Version20250228192241.php
index 967136ed04015b05e8c97cb6ff264ec0ba41992b..76fcf0ad3724fc763c9c3c452431b596cad71efb 100644
--- a/server/web_app/migrations/Version20250225195907.php
+++ b/server/web_app/migrations/Version20250228192241.php
@@ -10,7 +10,7 @@ use Doctrine\Migrations\AbstractMigration;
 /**
  * Auto-generated Migration: Please modify to your needs!
  */
-final class Version20250225195907 extends AbstractMigration
+final class Version20250228192241 extends AbstractMigration
 {
     public function getDescription(): string
     {
@@ -20,10 +20,10 @@ final class Version20250225195907 extends AbstractMigration
     public function up(Schema $schema): void
     {
         // this up() migration is auto-generated, please modify it to your needs
-        $this->addSql('CREATE TABLE item (id INT AUTO_INCREMENT NOT NULL, title VARCHAR(255) NOT NULL, description VARCHAR(255) DEFAULT NULL, price DOUBLE PRECISION NOT NULL, purchase_url VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
+        $this->addSql('CREATE TABLE item (id INT AUTO_INCREMENT NOT NULL, title VARCHAR(255) NOT NULL, description VARCHAR(255) DEFAULT NULL, price DOUBLE PRECISION NOT NULL, purchase_url VARCHAR(255) DEFAULT NULL, is_bought TINYINT(1) DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
         $this->addSql('CREATE TABLE purchase (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, wish_list_id INT NOT NULL, item_id INT NOT NULL, url_proof VARCHAR(255) DEFAULT NULL, message VARCHAR(255) DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_6117D13BA76ED395 (user_id), INDEX IDX_6117D13BD69F3311 (wish_list_id), INDEX IDX_6117D13B126F525E (item_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
         $this->addSql('CREATE TABLE user (id INT AUTO_INCREMENT NOT NULL, user_name VARCHAR(255) DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, surname VARCHAR(255) DEFAULT NULL, email VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, is_blocked TINYINT(1) DEFAULT NULL, role VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', UNIQUE INDEX UNIQ_8D93D649E7927C74 (email), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
-        $this->addSql('CREATE TABLE wish_list (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, name VARCHAR(255) NOT NULL, expiration_date DATETIME DEFAULT NULL, is_active TINYINT(1) NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_5B8739BDA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
+        $this->addSql('CREATE TABLE wish_list (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, name VARCHAR(255) NOT NULL, description VARCHAR(255) NOT NULL, expiration_date DATETIME DEFAULT NULL, is_active TINYINT(1) NOT NULL, url_view_mode VARCHAR(255) NOT NULL, url_edit_mode VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_5B8739BDA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
         $this->addSql('CREATE TABLE wishlist_item (wish_list_id INT NOT NULL, item_id INT NOT NULL, INDEX IDX_6424F4E8D69F3311 (wish_list_id), INDEX IDX_6424F4E8126F525E (item_id), PRIMARY KEY(wish_list_id, item_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
         $this->addSql('CREATE TABLE wish_list_member (id INT AUTO_INCREMENT NOT NULL, wish_list_id INT NOT NULL, user_id INT NOT NULL, can_edit TINYINT(1) NOT NULL, is_accepted TINYINT(1) DEFAULT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_F4CA81DFD69F3311 (wish_list_id), INDEX IDX_F4CA81DFA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
         $this->addSql('ALTER TABLE purchase ADD CONSTRAINT FK_6117D13BA76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
diff --git a/server/web_app/src/DataFixtures/ItemFixtures.php b/server/web_app/src/DataFixtures/ItemFixtures.php
index a8dcc0cc5db53bdee8e0133ac7e78b9c6ee74c4c..a422b157f57adfbceef46e0d9a10c376a7f059f0 100644
--- a/server/web_app/src/DataFixtures/ItemFixtures.php
+++ b/server/web_app/src/DataFixtures/ItemFixtures.php
@@ -15,30 +15,35 @@ class ItemFixtures extends Fixture
                 'title' => 'Smartphone',
                 'description' => 'Latest model with high-end specs',
                 'price' => 799.99,
+                'is_bought' => true,
                 'purchase_url' => 'https://example.com/smartphone',
             ],
             [
                 'title' => 'Laptop',
                 'description' => 'Powerful laptop for work and gaming',
                 'price' => 1299.49,
+                'is_bought' => true,
                 'purchase_url' => 'https://example.com/laptop',
             ],
             [
                 'title' => 'Wireless Headphones',
                 'description' => 'Noise-canceling headphones with long battery life',
                 'price' => 199.99,
+                'is_bought' => false,
                 'purchase_url' => 'https://example.com/headphones',
             ],
             [
                 'title' => 'Coffee Maker',
                 'description' => 'Automatic coffee maker with multiple settings',
                 'price' => 89.99,
+                'is_bought' => false,
                 'purchase_url' => 'https://example.com/coffee-maker',
             ],
             [
                 'title' => 'Gaming Chair',
                 'description' => 'Ergonomic chair for long gaming sessions',
                 'price' => 249.99,
+                'is_bought' => false,
                 'purchase_url' => 'https://example.com/gaming-chair',
             ]
         ];
@@ -48,6 +53,7 @@ class ItemFixtures extends Fixture
             $item->setTitle($itemData['title']);
             $item->setDescription($itemData['description']);
             $item->setPrice($itemData['price']);
+            $item->setIsBought($itemData['is_bought']);
             $item->setPurchaseUrl($itemData['purchase_url']);
             $item->setCreatedAt(new \DateTimeImmutable());
 
diff --git a/server/web_app/src/DataFixtures/PurchaseFixtures.php b/server/web_app/src/DataFixtures/PurchaseFixtures.php
index 9b6140ae4946a969c557dfcf2f822d012a4e832d..045637e08c7bade15c3f907a9c272631d5774939 100644
--- a/server/web_app/src/DataFixtures/PurchaseFixtures.php
+++ b/server/web_app/src/DataFixtures/PurchaseFixtures.php
@@ -2,16 +2,65 @@
 
 namespace App\DataFixtures;
 
+use App\Entity\Purchase;
+use App\Entity\User;
+use App\Entity\WishList;
+use App\Entity\Item;
 use Doctrine\Bundle\FixturesBundle\Fixture;
 use Doctrine\Persistence\ObjectManager;
+use Doctrine\Common\DataFixtures\DependentFixtureInterface;
 
-class PurchaseFixtures extends Fixture
+class PurchaseFixtures extends Fixture implements DependentFixtureInterface
 {
     public function load(ObjectManager $manager): void
     {
-        // $product = new Product();
-        // $manager->persist($product);
+        // Fetch existing users, wishlists, and items from the database
+        $users = $manager->getRepository(User::class)->findAll();
+        $wishLists = $manager->getRepository(WishList::class)->findAll();
+        $items = $manager->getRepository(Item::class)->findAll();
+
+        if (empty($users) || empty($wishLists) || empty($items)) {
+            throw new \Exception('Ensure users, wishlists, and items exist in the database before running this fixture.');
+        }
+
+        $purchasesData = [
+            [
+                'user' => $users[0],
+                'wishList' => $wishLists[0],
+                'item' => $items[0],
+                'url_proof' => 'https://example.com/proof1.jpg',
+                'message' => 'Hope you like this gift!',
+            ],
+            [
+                'user' => $users[1],
+                'wishList' => $wishLists[0],
+                'item' => $items[1],
+                'url_proof' => 'https://example.com/proof2.jpg',
+                'message' => 'A little surprise for you!',
+            ]
+        ];
+
+        foreach ($purchasesData as $data) {
+            $purchase = new Purchase();
+            $purchase->setUser($data['user']);
+            $purchase->setWishList($data['wishList']);
+            $purchase->setItem($data['item']);
+            $purchase->setUrlProof($data['url_proof']);
+            $purchase->setMessage($data['message']);
+            $purchase->setCreatedAt(new \DateTimeImmutable());
+
+            $manager->persist($purchase);
+        }
 
         $manager->flush();
     }
+
+    public function getDependencies(): array
+    {
+        return [
+            UserFixtures::class,
+            WishListFixtures::class,
+            ItemFixtures::class,
+        ];
+    }
 }
diff --git a/server/web_app/src/DataFixtures/WishListFixtures.php b/server/web_app/src/DataFixtures/WishListFixtures.php
index cd735e653e889aca768f0e5af011e72fd7b8da89..eef728fbf2c374891768db143513c21d4fcf2988 100644
--- a/server/web_app/src/DataFixtures/WishListFixtures.php
+++ b/server/web_app/src/DataFixtures/WishListFixtures.php
@@ -25,33 +25,45 @@ class WishListFixtures extends Fixture implements DependentFixtureInterface
         $wishListsData = [
             [
                 'name' => 'John\'s Birthday Wishlist',
+                'description' => 'Birthday Wishlist',
                 'user' => $users[0],  // Assuming at least one user exists
                 'items' => [$items[0], $items[1]],  // Adding first two items
                 'expiration_date' => new \DateTime('+30 days'),
                 'is_active' => true,
+                'url_view_mode' => 'http:://url_view_mode.com',
+                'url_edit_mode' => 'http:://url_edit_mode.com',
             ],
             [
                 'name' => 'Tech Gadgets Wishlist',
+                'description' => 'Gadgets Wishlist',
                 'user' => $users[1],  // Use second user if available, else first user
                 'items' => [$items[2], $items[3], $items[4]],  // Adding three different items
                 'expiration_date' => new \DateTime('+60 days'),
                 'is_active' => true,
+                'url_view_mode' => 'http:://url_view_mode.com',
+                'url_edit_mode' => 'http:://url_edit_mode.com',
             ],
             [
                 'name' => 'Home Essentials Wishlist',
+                'description' => 'Essentials Wishlist',
                 'user' => $users[2],  // Use third user if available, else first user
                 'items' => [$items[1], $items[4]],  // Adding two different items
                 'expiration_date' => new \DateTime('+90 days'),
                 'is_active' => false,
+                'url_view_mode' => 'http:://url_view_mode.com',
+                'url_edit_mode' => 'http:://url_edit_mode.com',
             ],
         ];
 
         foreach ($wishListsData as $wishListData) {
             $wishList = new WishList();
             $wishList->setName($wishListData['name']);
+            $wishList->setDescription($wishListData['description']);
             $wishList->setUser($wishListData['user']);
             $wishList->setExpirationDate($wishListData['expiration_date']);
             $wishList->setIsActive($wishListData['is_active']);
+            $wishList->setUrlViewMode($wishListData['url_view_mode']);
+            $wishList->setUrlEditMode($wishListData['url_edit_mode']);
             $wishList->setCreatedAt(new \DateTimeImmutable());
 
             foreach ($wishListData['items'] as $item) {
diff --git a/server/web_app/src/Entity/Item.php b/server/web_app/src/Entity/Item.php
index 75a011f862125994f98e04a5600e5c8da8900348..5d79fe802695ef5e729ca007b208e261688dc33c 100644
--- a/server/web_app/src/Entity/Item.php
+++ b/server/web_app/src/Entity/Item.php
@@ -25,6 +25,9 @@ class Item
     #[ORM\Column(length: 255, nullable: true)]
     private ?string $purchase_url = null;
 
+    #[ORM\Column(length: 255, nullable: true)]
+    private ?bool $is_bought = null;
+
     #[ORM\Column]
     private ?\DateTimeImmutable $created_at = null;
 
@@ -81,6 +84,18 @@ class Item
         return $this;
     }
 
+    public function isBought(): ?bool
+    {
+        return $this->is_bought;
+    }
+
+    public function setIsBought(?bool $is_bought): static
+    {
+        $this->is_bought = $is_bought;
+
+        return $this;
+    }
+
     public function getCreatedAt(): ?\DateTimeImmutable
     {
         return $this->created_at;
diff --git a/server/web_app/src/Entity/Purchase.php b/server/web_app/src/Entity/Purchase.php
index 7f65dc8013191702161543818529da19ce142c17..d1c50be3bf05cefc722cb1c6a2a073633ff0ccad 100644
--- a/server/web_app/src/Entity/Purchase.php
+++ b/server/web_app/src/Entity/Purchase.php
@@ -15,15 +15,15 @@ class Purchase
 
     #[ORM\ManyToOne(targetEntity: User::class)]
     #[ORM\JoinColumn(nullable: false)]
-    private ?int $user = null;
+    private ?User $user = null;
 
     #[ORM\ManyToOne(targetEntity: WishList::class)]
     #[ORM\JoinColumn(nullable: false)]
-    private ?int $wishList = null;
+    private ?WishList $wishList = null;
 
     #[ORM\ManyToOne(targetEntity: Item::class)]
     #[ORM\JoinColumn(nullable: false)]
-    private ?int $item = null;
+    private ?Item $item = null;
 
     #[ORM\Column(length: 255, nullable: true)]
     private ?string $url_proof = null;
@@ -39,36 +39,36 @@ class Purchase
         return $this->id;
     }
 
-    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;
 
         return $this;
     }
 
-    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 getItem(): ?int
+    public function getItem(): ?Item
     {
         return $this->item;
     }
 
-    public function setItem(int $item): static
+    public function setItem(Item $item): static
     {
         $this->item = $item;
 
diff --git a/server/web_app/src/Entity/WishList.php b/server/web_app/src/Entity/WishList.php
index cb593dc9e5c773d0d995bb87dee502684fdfe5c9..b4ced59166ffac4fdc30191b42247127628e8843 100644
--- a/server/web_app/src/Entity/WishList.php
+++ b/server/web_app/src/Entity/WishList.php
@@ -23,6 +23,9 @@ class WishList
     #[ORM\Column(length: 255)]
     private ?string $name = null;
 
+    #[ORM\Column(length: 255)]
+    private ?string $description = null;
+
     #[ORM\ManyToMany(targetEntity: Item::class)]
     #[ORM\JoinTable(name: "wishlist_item")]
     private Collection $items;
@@ -33,6 +36,13 @@ class WishList
     #[ORM\Column]
     private ?bool $is_active = null;
 
+    //add getters and setters 
+    #[ORM\Column(length: 255)]
+    private ?string $urlViewMode = null;
+
+    #[ORM\Column(length: 255)]
+    private ?string $urlEditMode = null;
+
     #[ORM\Column]
     private ?\DateTimeImmutable $created_at = null;
 
@@ -70,6 +80,18 @@ class WishList
         return $this;
     }
 
+    public function getDescription(): ?string
+    {
+        return $this->name;
+    }
+
+    public function setDescription(string $description): static
+    {
+        $this->description = $description;
+
+        return $this;
+    }
+
     public function getExpirationDate(): ?\DateTimeInterface
     {
         return $this->expiration_date;
@@ -94,6 +116,22 @@ class WishList
         return $this;
     }
 
+    public function getUrlViewMode () {
+        return $this->urlViewMode;
+    }
+
+    public function setUrlViewMode (string $urlViewMode) {
+        $this->urlViewMode = $urlViewMode;
+    }
+
+    public function getUrlEditMode () {
+        return $this->urlViewMode;
+    }
+
+    public function setUrlEditMode (string $urlEditMode) {
+        $this->urlEditMode = $urlEditMode;
+    }
+
     public function getCreatedAt(): ?\DateTimeImmutable
     {
         return $this->created_at;