Index: pom.xml
===================================================================
--- pom.xml	(revision fd6c53aed9a5ede7c1895b9dd01b434dd7b7d9a8)
+++ pom.xml	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
@@ -55,4 +55,8 @@
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
     </dependencies>
 
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Article.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Article.java	(revision fd6c53aed9a5ede7c1895b9dd01b434dd7b7d9a8)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Article.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
@@ -1,4 +1,23 @@
 package mk.ukim.finki.db.distributorapp.model;
 
+import jakarta.persistence.*;
+
+import java.util.List;
+
+@Entity
 public class Article {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long articleId;
+
+    private String article_name;
+    private Double article_weight;
+    private Double price;
+
+    @ManyToMany(mappedBy = "articles")
+    private List<Order> orders;
+
+    @ManyToOne
+    @JoinColumn(name = "category_id", nullable = false)
+    private Category category;
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Category.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Category.java	(revision fd6c53aed9a5ede7c1895b9dd01b434dd7b7d9a8)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Category.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
@@ -1,4 +1,17 @@
 package mk.ukim.finki.db.distributorapp.model;
 
+import jakarta.persistence.*;
+
+import java.util.List;
+
+@Entity
 public class Category {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long categoryId;
+    private String categoryName;
+
+    @OneToMany(mappedBy = "category", cascade = CascadeType.ALL,orphanRemoval = true)
+    private List<Article> articles;
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/City.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/City.java	(revision fd6c53aed9a5ede7c1895b9dd01b434dd7b7d9a8)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/City.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
@@ -1,4 +1,16 @@
 package mk.ukim.finki.db.distributorapp.model;
 
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import lombok.Data;
+
+@Data
+@Entity
 public class City {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    public Long cityId;
+    public String cityName;
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Customer.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Customer.java	(revision fd6c53aed9a5ede7c1895b9dd01b434dd7b7d9a8)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Customer.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
@@ -1,4 +1,22 @@
 package mk.ukim.finki.db.distributorapp.model;
 
-public class Customer {
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Entity;
+import jakarta.persistence.OneToMany;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity
+public class Customer extends User{
+    public String EDB;
+    public String loc_address;
+    public String company_name;
+
+    @OneToMany(mappedBy = "customer",cascade = CascadeType.ALL,orphanRemoval = true)
+    public List<Order> orders;
+
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Delivery.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Delivery.java	(revision fd6c53aed9a5ede7c1895b9dd01b434dd7b7d9a8)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Delivery.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
@@ -1,4 +1,25 @@
 package mk.ukim.finki.db.distributorapp.model;
 
+import jakarta.persistence.*;
+import mk.ukim.finki.db.distributorapp.model.enumerations.DeliveryStatus;
+
+import java.util.Date;
+import java.util.List;
+
+@Entity
 public class Delivery {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long deliveryId;
+    private Date dateCreated;
+    @Enumerated
+    private DeliveryStatus deliveryStatus;
+
+    @OneToMany(mappedBy = "delivery", cascade = CascadeType.ALL, orphanRemoval = true)
+    private List<Order> orders;
+
+    @ManyToOne
+    @JoinColumn(name = "vehicle_id",nullable = false)
+    private Vehicle vehicle;
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Driver.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Driver.java	(revision fd6c53aed9a5ede7c1895b9dd01b434dd7b7d9a8)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Driver.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
@@ -1,4 +1,12 @@
 package mk.ukim.finki.db.distributorapp.model;
 
-public class Driver {
+import jakarta.persistence.Entity;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.OneToOne;
+
+@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 fd6c53aed9a5ede7c1895b9dd01b434dd7b7d9a8)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Manager.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
@@ -1,4 +1,12 @@
 package mk.ukim.finki.db.distributorapp.model;
 
-public class Manager {
+import jakarta.persistence.Entity;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.OneToOne;
+
+@Entity
+public class Manager extends User {
+    @OneToOne
+    @JoinColumn(name = "warehouse_id",referencedColumnName = "warehouseId")
+    private Warehouse warehouse;
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Order.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Order.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Order.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
@@ -0,0 +1,34 @@
+package mk.ukim.finki.db.distributorapp.model;
+
+import jakarta.persistence.*;
+
+import java.util.List;
+
+@Entity
+public class Order {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long orderId;
+    private Double amount;
+
+    @ManyToOne
+    @JoinColumn(name = "user_id")
+    private Customer customer;
+
+    @ManyToMany
+    @JoinTable(
+            name = "order_article",
+            joinColumns = @JoinColumn(name = "order_id"),
+            inverseJoinColumns = @JoinColumn(name = "article_id")
+    )
+    private List<Article> articles;
+
+    @OneToOne(cascade = CascadeType.ALL)
+    @JoinColumn(name = "proforma_id",referencedColumnName = "proformaId")
+    private Proforma proforma;
+
+    @ManyToOne
+    @JoinColumn(name = "delivery_id",nullable = false)
+    private Delivery delivery;
+}
Index: c/main/java/mk/ukim/finki/db/distributorapp/model/Orders.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Orders.java	(revision fd6c53aed9a5ede7c1895b9dd01b434dd7b7d9a8)
+++ 	(revision )
@@ -1,4 +1,0 @@
-package mk.ukim.finki.db.distributorapp.model;
-
-public class Orders {
-}
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Proforma.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Proforma.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Proforma.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
@@ -0,0 +1,16 @@
+package mk.ukim.finki.db.distributorapp.model;
+
+import jakarta.persistence.*;
+
+@Entity
+public class Proforma {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long proformaId;
+
+    private String proformaDetails;
+    private Double totalAmount;
+
+    @OneToOne(mappedBy = "proforma")
+    private Order order;
+}
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/User.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/User.java	(revision fd6c53aed9a5ede7c1895b9dd01b434dd7b7d9a8)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/User.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
@@ -1,4 +1,20 @@
 package mk.ukim.finki.db.distributorapp.model;
 
-public class User {
+import jakarta.persistence.*;
+import lombok.Data;
+
+@Data
+@Entity
+public abstract class User {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    public Long user_id;
+    public String user_name;
+    public String user_surname;
+    public String mobile_no;
+    public String email;
+
+    @ManyToOne
+    @JoinColumn(name = "city_id")
+    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 fd6c53aed9a5ede7c1895b9dd01b434dd7b7d9a8)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Vehicle.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
@@ -1,4 +1,19 @@
 package mk.ukim.finki.db.distributorapp.model;
 
+import jakarta.persistence.*;
+
+import java.util.List;
+
+@Entity
 public class Vehicle {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long vehicleId;
+    private Double carry_weight;
+
+    @OneToMany(mappedBy = "vehicle",cascade = CascadeType.ALL, orphanRemoval = true)
+    private List<Delivery> deliveries;
+
+    @OneToOne(mappedBy = "vehicle")
+    private Driver driver;
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/Warehouse.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/Warehouse.java	(revision fd6c53aed9a5ede7c1895b9dd01b434dd7b7d9a8)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/Warehouse.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
@@ -1,4 +1,13 @@
 package mk.ukim.finki.db.distributorapp.model;
 
+import jakarta.persistence.*;
+
+@Entity
 public class Warehouse {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long warehouseId;
+
+    @OneToOne(mappedBy = "warehouse")
+    private Manager manager;
 }
Index: src/main/java/mk/ukim/finki/db/distributorapp/model/enumerations/DeliveryStatus.java
===================================================================
--- src/main/java/mk/ukim/finki/db/distributorapp/model/enumerations/DeliveryStatus.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
+++ src/main/java/mk/ukim/finki/db/distributorapp/model/enumerations/DeliveryStatus.java	(revision dc016d789fabb2dc6e30fe663d206604db0888f5)
@@ -0,0 +1,6 @@
+package mk.ukim.finki.db.distributorapp.model.enumerations;
+
+import jakarta.persistence.Enumerated;
+
+public enum DeliveryStatus {
+}
