Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Article.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Article.java	(revision 0a049d7a6774abc39c216788d7995cabacb6e245)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Article.java	(revision ca03c7ef8acf744904ada7e3c85880323bc411f5)
@@ -3,4 +3,5 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import mk.ukim.finki.db.distributorapp.model.junctions.WarehouseArticle;
 
 import java.util.List;
@@ -23,3 +24,6 @@
     @JoinColumn(name = "category_id", nullable = false)
     private Category category;
+
+    @OneToMany(mappedBy = "article", cascade = CascadeType.ALL, orphanRemoval = true)
+    private List<WarehouseArticle> warehouseArticles;
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Category.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Category.java	(revision 0a049d7a6774abc39c216788d7995cabacb6e245)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Category.java	(revision ca03c7ef8acf744904ada7e3c85880323bc411f5)
@@ -2,8 +2,10 @@
 
 import jakarta.persistence.*;
+import lombok.Data;
 
 import java.util.List;
 
 @Entity
+@Data
 public class Category {
 
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/City.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/City.java	(revision 0a049d7a6774abc39c216788d7995cabacb6e245)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/City.java	(revision ca03c7ef8acf744904ada7e3c85880323bc411f5)
@@ -1,9 +1,8 @@
 package mk.ukim.finki.db.distributorapp.model;
 
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
-import jakarta.persistence.Id;
+import jakarta.persistence.*;
 import lombok.Data;
+
+import java.util.List;
 
 @Data
@@ -12,5 +11,12 @@
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
-    public Long cityId;
-    public String cityName;
+    private Long cityId;
+    private String cityName;
+
+    @OneToMany(mappedBy = "city", cascade = CascadeType.ALL, orphanRemoval = true)
+    private List<User> users;
+
+    @OneToMany(mappedBy = "city", cascade = CascadeType.ALL, orphanRemoval = true)
+    private List<Warehouse> warehouses;
+
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Delivery.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Delivery.java	(revision 0a049d7a6774abc39c216788d7995cabacb6e245)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Delivery.java	(revision ca03c7ef8acf744904ada7e3c85880323bc411f5)
@@ -2,4 +2,5 @@
 
 import jakarta.persistence.*;
+import lombok.Data;
 import mk.ukim.finki.db.distributorapp.model.enumerations.DeliveryStatus;
 
@@ -7,4 +8,5 @@
 import java.util.List;
 
+@Data
 @Entity
 public class Delivery {
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Driver.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Driver.java	(revision 0a049d7a6774abc39c216788d7995cabacb6e245)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Driver.java	(revision ca03c7ef8acf744904ada7e3c85880323bc411f5)
@@ -2,11 +2,14 @@
 
 import jakarta.persistence.Entity;
-import jakarta.persistence.JoinColumn;
 import jakarta.persistence.OneToOne;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
 
+@Data
+@EqualsAndHashCode(callSuper = true)
 @Entity
 public class Driver extends User {
+
     @OneToOne
-    @JoinColumn(name = "vehicle_id",referencedColumnName = "vehicleId")
     private Vehicle vehicle;
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Manager.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Manager.java	(revision 0a049d7a6774abc39c216788d7995cabacb6e245)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Manager.java	(revision ca03c7ef8acf744904ada7e3c85880323bc411f5)
@@ -4,5 +4,9 @@
 import jakarta.persistence.JoinColumn;
 import jakarta.persistence.OneToOne;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
 
+@Data
+@EqualsAndHashCode(callSuper = true)
 @Entity
 public class Manager extends User {
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Order.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Order.java	(revision 0a049d7a6774abc39c216788d7995cabacb6e245)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Order.java	(revision ca03c7ef8acf744904ada7e3c85880323bc411f5)
@@ -3,10 +3,12 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 import mk.ukim.finki.db.distributorapp.model.enumerations.OrderStatus;
 
 import java.util.List;
 
+@Data
 @Entity
-@Data
+@NoArgsConstructor
 public class Order {
 
@@ -37,7 +39,4 @@
     private Delivery delivery;
 
-    public Order(Long customerId, List<Article> articles) {
-        this.customer = customer;
-        this.articles = articles;
-    }
+    public Order(Long customerId, List<Article> articles) {}
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Proforma.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Proforma.java	(revision 0a049d7a6774abc39c216788d7995cabacb6e245)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Proforma.java	(revision ca03c7ef8acf744904ada7e3c85880323bc411f5)
@@ -4,6 +4,7 @@
 import lombok.Data;
 
+
+@Data
 @Entity
-@Data
 public class Proforma {
     @Id
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/User.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/User.java	(revision 0a049d7a6774abc39c216788d7995cabacb6e245)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/User.java	(revision ca03c7ef8acf744904ada7e3c85880323bc411f5)
@@ -16,5 +16,5 @@
 
     @ManyToOne
-    @JoinColumn(name = "city_id")
+    @JoinColumn(name = "city_id",nullable = false)
     public City city;
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Vehicle.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Vehicle.java	(revision 0a049d7a6774abc39c216788d7995cabacb6e245)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Vehicle.java	(revision ca03c7ef8acf744904ada7e3c85880323bc411f5)
@@ -2,7 +2,10 @@
 
 import jakarta.persistence.*;
+import lombok.Data;
 
 import java.util.List;
 
+
+@Data
 @Entity
 public class Vehicle {
@@ -17,3 +20,7 @@
     @OneToOne(mappedBy = "vehicle")
     private Driver driver;
+
+    @ManyToOne
+    @JoinColumn(name = "warehouse_id",nullable = false)
+    private Warehouse warehouse;
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Warehouse.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Warehouse.java	(revision 0a049d7a6774abc39c216788d7995cabacb6e245)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Warehouse.java	(revision ca03c7ef8acf744904ada7e3c85880323bc411f5)
@@ -2,5 +2,11 @@
 
 import jakarta.persistence.*;
+import lombok.Data;
+import mk.ukim.finki.db.distributorapp.model.junctions.WarehouseArticle;
 
+import java.util.List;
+
+
+@Data
 @Entity
 public class Warehouse {
@@ -11,3 +17,13 @@
     @OneToOne(mappedBy = "warehouse")
     private Manager manager;
+
+    @OneToMany(mappedBy = "warehouse", cascade = CascadeType.ALL, orphanRemoval = true)
+    private List<Vehicle> vehicles;
+
+    @ManyToOne
+    @JoinColumn(name = "city_id", nullable = false)
+    private City city;
+
+    @OneToMany(mappedBy = "warehouse", cascade = CascadeType.ALL, orphanRemoval = true)
+    private List<WarehouseArticle> warehouseArticles;
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/junctions/WarehouseArticle.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/junctions/WarehouseArticle.java	(revision ca03c7ef8acf744904ada7e3c85880323bc411f5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/junctions/WarehouseArticle.java	(revision ca03c7ef8acf744904ada7e3c85880323bc411f5)
@@ -0,0 +1,24 @@
+package mk.ukim.finki.db.distributorapp.model.junctions;
+
+import jakarta.persistence.*;
+import lombok.Data;
+import mk.ukim.finki.db.distributorapp.model.Article;
+import mk.ukim.finki.db.distributorapp.model.Warehouse;
+
+@Data
+@Entity
+public class WarehouseArticle {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long warehouseArticleId;
+
+    @ManyToOne
+    @JoinColumn(name = "warehouse_id", nullable = false)
+    private Warehouse warehouse;
+
+    @ManyToOne
+    @JoinColumn(name = "article_id", nullable = false)
+    private Article article;
+
+    private int quantity;
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/service/impl/OrderServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/service/impl/OrderServiceImpl.java	(revision 0a049d7a6774abc39c216788d7995cabacb6e245)
+++ src/main/java/mk/ukim/finki/db/distributorapp/service/impl/OrderServiceImpl.java	(revision ca03c7ef8acf744904ada7e3c85880323bc411f5)
@@ -8,5 +8,4 @@
 import mk.ukim.finki.db.distributorapp.repository.CustomerRepository;
 import mk.ukim.finki.db.distributorapp.repository.OrdersRepository;
-import mk.ukim.finki.db.distributorapp.repository.UserRepository;
 import mk.ukim.finki.db.distributorapp.service.OrderService;
 import org.springframework.stereotype.Service;
