Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Admin.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Admin.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Admin.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -3,4 +3,5 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 import java.time.LocalDate;
@@ -8,13 +9,12 @@
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "admin_table")
 @PrimaryKeyJoinColumn(name = "id_user")
 public class Admin extends User {
 
-    public Admin(LocalDate dateCreated, String name, String email, String password, String telephone) {
+    public Admin(LocalDate dateCreated, String name, String email,
+                 String password, String telephone) {
         super(dateCreated, name, email, password, telephone);
     }
-
-    public Admin() {
-    }
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Adopter.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Adopter.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Adopter.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -7,4 +7,5 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 import java.time.LocalDate;
@@ -13,4 +14,5 @@
 @Entity
 @Table(name = "adopter")
+@RequiredArgsConstructor
 @PrimaryKeyJoinColumn(name = "id_user")
 public class Adopter extends User {
@@ -40,6 +42,7 @@
     private Boolean verified;
 
-    @Column(name = "verified_by_employee")
-    private Integer verifiedByEmployeeId;
+    @ManyToOne
+    @JoinColumn(name = "verified_by_employee")
+    Employee employeeVerificator;
 
     public Adopter(LocalDate dateCreated, String name, String email, String password, String telephone,
@@ -57,18 +60,3 @@
     }
 
-    public Adopter(FreeTime freeTime, Funds funds, boolean hasOtherPets, boolean hasKids, Housing housing,
-                   PhysicalActivity physicalActivity, boolean willFoster, boolean verified, int verifiedByEmployeeId) {
-        this.freeTime = freeTime;
-        this.funds = funds;
-        this.hasOtherPets = hasOtherPets;
-        this.hasKids = hasKids;
-        this.housing = housing;
-        this.physicalActivity = physicalActivity;
-        this.willFoster = willFoster;
-        this.verified = verified;
-        this.verifiedByEmployeeId = verifiedByEmployeeId;
-    }
-
-    public Adopter() {
-    }
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Adoption.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Adoption.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Adoption.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -3,4 +3,5 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 import java.time.LocalDate;
@@ -8,4 +9,5 @@
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "adoption")
 public class Adoption {
@@ -23,17 +25,16 @@
 
     @Column(name = "approved", nullable = false)
-    private boolean approved;
+    private Boolean approved;
 
-    @Column(name = "id_adopter", nullable = false)
-    private Integer adopterId;
+    @ManyToOne
+    @JoinColumn(name = "id_adopter", nullable = false)
+    private Adopter adopter;
 
-    public Adoption(LocalDate startDate, LocalDate endDateFoster, boolean approved, Integer adopterId) {
+    public Adoption(LocalDate startDate, LocalDate endDateFoster, Boolean approved,
+                    Adopter adopter) {
         this.startDate = startDate;
         this.endDateFoster = endDateFoster;
         this.approved = approved;
-        this.adopterId = adopterId;
-    }
-
-    public Adoption() {
+        this.adopter = adopter;
     }
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Category.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Category.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Category.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -3,7 +3,9 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "category")
 public class Category {
@@ -21,5 +23,3 @@
     }
 
-    public Category() {
-    }
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Donor.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Donor.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Donor.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -3,4 +3,5 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 import java.time.LocalDate;
@@ -8,4 +9,5 @@
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "donor")
 @PrimaryKeyJoinColumn(name = "id_user")
@@ -13,10 +15,12 @@
 
     @Column(name = "is_from_organisation", nullable = false)
-    private boolean fromOrganisation;
+    private Boolean fromOrganisation;
 
     @Column(name = "name_organisation_donor", nullable = true, length = 100)
     private String organisationName;
 
-    public Donor(LocalDate dateCreated, String name, String email, String password, String telephone, boolean fromOrganisation, String organisationName) {
+    public Donor(LocalDate dateCreated, String name, String email,
+                 String password, String telephone, Boolean fromOrganisation,
+                 String organisationName) {
         super(dateCreated, name, email, password, telephone);
         this.fromOrganisation = fromOrganisation;
@@ -24,11 +28,3 @@
     }
 
-    public Donor(boolean fromOrganisation, String organisationName) {
-        this.fromOrganisation = fromOrganisation;
-        this.organisationName = organisationName;
-    }
-
-    public Donor() {
-    }
-
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Employee.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Employee.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Employee.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -3,4 +3,5 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 import java.time.LocalDate;
@@ -8,4 +9,5 @@
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "employee")
 @PrimaryKeyJoinColumn(name = "id_user")
@@ -15,31 +17,22 @@
     private String position;
 
-    @Column(name = "id_shelter", nullable = false)
-    private Integer shelterId;
+    @ManyToOne
+    @JoinColumn(name = "id_shelter", nullable = false)
+    private Shelter shelter;
 
     @Column(name = "is_verified", nullable = false)
-    private boolean verified;
+    private Boolean verified;
 
-    @Column(name = "verified_by_admin")
-    private Integer verifiedByAdminId;
+    @ManyToOne
+    @JoinColumn(name = "verified_by_admin")
+    private Admin adminVerificator;
 
     public Employee(LocalDate dateCreated, String name, String email, String password, String telephone,
-                    String position, int shelterId, boolean verified) {
+                    String position, Shelter shelter, Boolean verified) {
         super(dateCreated, name, email, password, telephone);
         this.position = position;
-        this.shelterId = shelterId;
+        this.shelter = shelter;
         this.verified = verified;
     }
 
-    public Employee(String position, int shelterId, boolean verified, int verifiedByAdminId) {
-        this.position = position;
-        this.shelterId = shelterId;
-        this.verified = verified;
-        this.verifiedByAdminId = verifiedByAdminId;
-    }
-
-    public Employee() {
-
-    }
-
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Food.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Food.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Food.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -4,7 +4,9 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "food")
 public class Food {
@@ -29,6 +31,3 @@
         this.type = type;
     }
-
-    public Food() {
-    }
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Organisation.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Organisation.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Organisation.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -3,7 +3,9 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "organisation")
 public class Organisation {
@@ -28,6 +30,3 @@
         this.billingInformation = billingInformation;
     }
-
-    public Organisation() {
-    }
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/PersonalProfile.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/PersonalProfile.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/PersonalProfile.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -2,12 +2,11 @@
 
 import finki.paw5.model.enumerations.*;
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.Id;
-import jakarta.persistence.Table;
+import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "personal_profile")
 public class PersonalProfile {
@@ -16,4 +15,8 @@
     @Column(name = "id_pet", nullable = false)
     private Integer id;
+
+    @OneToOne
+    @JoinColumn(name = "id_pet", nullable = false)
+    private Pet pet;
 
     @Column(name = "friendly_to_kids", nullable = false)
@@ -32,6 +35,7 @@
     private GroomingNeed groomingNeed;
 
-    public PersonalProfile(Integer id, FriendlyToKids friendlyToKids, FriendlyToPets friendlyToPets, AttentionNeed attentionNeed, PhysicalActivity physicalActivity, GroomingNeed groomingNeed) {
+    public PersonalProfile(Integer id, Pet pet, FriendlyToKids friendlyToKids, FriendlyToPets friendlyToPets, AttentionNeed attentionNeed, PhysicalActivity physicalActivity, GroomingNeed groomingNeed) {
         this.id = id;
+        this.pet = pet;
         this.friendlyToKids = friendlyToKids;
         this.friendlyToPets = friendlyToPets;
@@ -40,6 +44,3 @@
         this.groomingNeed = groomingNeed;
     }
-
-    public PersonalProfile() {
-    }
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Pet.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Pet.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Pet.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -7,7 +7,9 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "pet")
 public class Pet {
@@ -40,13 +42,17 @@
 
     @Column(name = "can_be_fostered", nullable = false)
-    private boolean canBeFostered;
+    private Boolean canBeFostered;
 
-    @Column(name = "id_adoption")
-    private Integer adoptionId;
+    @ManyToOne
+    @JoinColumn(name = "id_adoption")
+    private Adoption adoption;
 
-    @Column(name = "id_shelter")
-    private Integer shelterId;
+    @ManyToOne
+    @JoinColumn(name = "id_shelter")
+    private Shelter shelter;
 
-    public Pet(String imageUrl, AgeGroup ageGroup, Size size, String breed, String name, Species species, Gender gender, boolean canBeFostered, Integer adoptionId, Integer shelterId) {
+    public Pet(String imageUrl, AgeGroup ageGroup, Size size, String breed,
+               String name, Species species, Gender gender, Boolean canBeFostered,
+               Adoption adoption, Shelter shelter) {
         this.imageUrl = imageUrl;
         this.ageGroup = ageGroup;
@@ -57,9 +63,6 @@
         this.gender = gender;
         this.canBeFostered = canBeFostered;
-        this.adoptionId = adoptionId;
-        this.shelterId = shelterId;
-    }
-
-    public Pet() {
+        this.adoption = adoption;
+        this.shelter = shelter;
     }
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Post.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Post.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Post.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -3,4 +3,5 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 import java.time.LocalDate;
@@ -8,4 +9,5 @@
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "post")
 public class Post {
@@ -22,22 +24,23 @@
     private String thumbnailUrl;
 
-    @Column(name="id_pet", nullable = false)
-    private Integer petId;
+    @ManyToOne
+    @JoinColumn(name="id_pet", nullable = false)
+    private Pet pet;
 
-    @Column(name="id_surendee")
-    private Integer surendeeId;
+    @ManyToOne
+    @JoinColumn(name="id_surendee")
+    private Surendee surendeePoster;
 
-    @Column(name="id_employee")
-    private Integer employeeId;
+    @ManyToOne
+    @JoinColumn(name="id_employee")
+    private Employee employeePoster;
 
-    public Post(LocalDate dateCreated, String thumbnailUrl, Integer petId, Integer surendeeId, Integer employeeId) {
+    public Post(LocalDate dateCreated, String thumbnailUrl,
+                Pet pet, Surendee surendeePoster, Employee employeePoster) {
         this.dateCreated = dateCreated;
         this.thumbnailUrl = thumbnailUrl;
-        this.petId = petId;
-        this.surendeeId = surendeeId;
-        this.employeeId = employeeId;
-    }
-
-    public Post() {
+        this.pet = pet;
+        this.surendeePoster = surendeePoster;
+        this.employeePoster = employeePoster;
     }
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Shelter.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Shelter.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Shelter.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -3,7 +3,9 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "shelter")
 public class Shelter {
@@ -20,6 +22,7 @@
     private String telephone;
 
-    @Column(name = "id_organisation")
-    private Integer organisationId;
+    @ManyToOne
+    @JoinColumn(name = "id_organisation")
+    private Organisation organisation;
 
     @Column(name = "name_shelter", nullable = false, length = 100)
@@ -29,13 +32,11 @@
     private String email;
 
-    public Shelter(String address, String telephone, Integer organisationId, String name, String email) {
+    public Shelter(String address, String telephone, Organisation organisation,
+                   String name, String email) {
         this.address = address;
         this.telephone = telephone;
-        this.organisationId = organisationId;
+        this.organisation = organisation;
         this.name = name;
         this.email = email;
     }
-
-    public Shelter() {
-    }
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Surendee.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Surendee.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Surendee.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -3,4 +3,5 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 import java.time.LocalDate;
@@ -8,4 +9,5 @@
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "surendee")
 @PrimaryKeyJoinColumn(name = "id_user")
@@ -16,6 +18,3 @@
     }
 
-    public Surendee() {
-    }
-
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Therapy.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Therapy.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Therapy.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -3,4 +3,5 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 import java.time.LocalDate;
@@ -9,4 +10,5 @@
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "therapy")
 public class Therapy {
@@ -31,6 +33,3 @@
         this.endDate = endDate;
     }
-
-    public Therapy() {
-    }
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/User.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/User.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/User.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -3,4 +3,5 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 import java.time.LocalDate;
@@ -9,4 +10,5 @@
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "user_table")
 @Inheritance(strategy = InheritanceType.JOINED)
@@ -40,6 +42,3 @@
         this.telephone = telephone;
     }
-
-    public User() {
-    }
 }
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/VetClinic.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/VetClinic.java	(revision 9a180fd9245330b18c29e3354bf118fde9fc1fdd)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/VetClinic.java	(revision fdd79611a60b56d406e6bebc75d07de209b159e2)
@@ -3,7 +3,9 @@
 import jakarta.persistence.*;
 import lombok.Data;
+import lombok.RequiredArgsConstructor;
 
 @Data
 @Entity
+@RequiredArgsConstructor
 @Table(name = "vet_clinic")
 public class VetClinic {
@@ -28,6 +30,3 @@
         this.name = name;
     }
-
-    public VetClinic() {
-    }
 }
