Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/Admin.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/Admin.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,20 +1,0 @@
-package finki.paw5.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-import java.time.LocalDate;
-
-@Data
-@Entity
-@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) {
-        super(dateCreated, name, email, password, telephone);
-    }
-
-    public Admin() {
-    }
-}
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/Adopter.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/Adopter.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,75 +1,0 @@
-package finki.paw5.model;
-
-import finki.paw5.model.enumerations.FreeTime;
-import finki.paw5.model.enumerations.Funds;
-import finki.paw5.model.enumerations.Housing;
-import finki.paw5.model.enumerations.PhysicalActivity;
-import jakarta.persistence.*;
-import lombok.Data;
-
-import java.time.LocalDate;
-
-@Data
-@Entity
-@Table(name = "adopter")
-@PrimaryKeyJoinColumn(name = "id_user")
-public class Adopter extends User {
-
-    @Column(name = "free_time")
-    private FreeTime freeTime;
-
-    @Column(name = "funds")
-    private Funds funds;
-
-    @Column(name = "has_other_pets")
-    private boolean hasOtherPets;
-
-    @Column(name = "has_kids")
-    private boolean hasKids;
-
-    @Column(name = "housing")
-    private Housing housing;
-
-    @Column(name = "physical_activity_adopters")
-    private PhysicalActivity physicalActivity;
-
-    @Column(name = "will_foster")
-    private boolean willFoster;
-
-    @Column(name = "is_verified", nullable = false)
-    private boolean verified;
-
-    @Column(name = "verified_by_employee")
-    private int verifiedByEmployeeId;
-
-    public Adopter(LocalDate dateCreated, String name, String email, String password, String telephone,
-                   FreeTime freeTime, Funds funds, boolean hasOtherPets, boolean hasKids, Housing housing,
-                   PhysicalActivity physicalActivity, boolean willFoster, boolean verified, int verifiedByEmployeeId) {
-        super(dateCreated, name, email, password, telephone);
-        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(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/Adoption.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/Adoption.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,40 +1,0 @@
-package finki.paw5.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-import java.time.LocalDate;
-import java.util.Date;
-
-@Data
-@Entity
-@Table(name = "adoption")
-public class Adoption {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id_adoption")
-    private int id;
-
-    @Column(name = "start_date", nullable = false)
-    private LocalDate startDate;
-
-    @Column(name = "end_date_foster")
-    private LocalDate endDateFoster;
-
-    @Column(name = "approved", nullable = false)
-    private boolean approved;
-
-    @Column(name = "id_adopter", nullable = false)
-    private int adopterId;
-
-    public Adoption(LocalDate startDate, LocalDate endDateFoster, boolean approved, int adopterId) {
-        this.startDate = startDate;
-        this.endDateFoster = endDateFoster;
-        this.approved = approved;
-        this.adopterId = adopterId;
-    }
-
-    public Adoption() {
-    }
-}
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/Category.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/Category.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,25 +1,0 @@
-package finki.paw5.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-@Data
-@Entity
-@Table(name = "category")
-public class Category {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id_category")
-    private int id;
-
-    @Column(name = "name_category", nullable = false, length = 100)
-    private String name;
-
-    public Category(String name) {
-        this.name = name;
-    }
-
-    public Category() {
-    }
-}
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/Donor.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/Donor.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,34 +1,0 @@
-package finki.paw5.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-import java.time.LocalDate;
-
-@Data
-@Entity
-@Table(name = "donor")
-@PrimaryKeyJoinColumn(name = "id_user")
-public class Donor extends User {
-
-    @Column(name = "is_from_organisation", nullable = false)
-    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) {
-        super(dateCreated, name, email, password, telephone);
-        this.fromOrganisation = fromOrganisation;
-        this.organisationName = organisationName;
-    }
-
-    public Donor(boolean fromOrganisation, String organisationName) {
-        this.fromOrganisation = fromOrganisation;
-        this.organisationName = organisationName;
-    }
-
-    public Donor() {
-    }
-
-}
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/Employee.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/Employee.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,46 +1,0 @@
-package finki.paw5.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-import java.time.LocalDate;
-
-@Data
-@Entity
-@Table(name = "employee")
-@PrimaryKeyJoinColumn(name = "id_user")
-public class Employee extends User {
-
-    @Column(name = "position_employee", nullable = false, length = 20)
-    private String position;
-
-    @Column(name = "id_shelter", nullable = false)
-    private int shelterId;
-
-    @Column(name = "is_verified", nullable = false)
-    private boolean verified;
-
-    @Column(name = "verified_by_admin")
-    private int verifiedByAdminId;
-
-    public Employee(LocalDate dateCreated, String name, String email, String password, String telephone,
-                    String position, int shelterId, boolean verified, int verifiedByAdminId) {
-        super(dateCreated, name, email, password, telephone);
-        this.position = position;
-        this.shelterId = shelterId;
-        this.verified = verified;
-        this.verifiedByAdminId = verifiedByAdminId;
-    }
-
-    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/Food.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/Food.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,34 +1,0 @@
-package finki.paw5.model;
-
-import finki.paw5.model.enumerations.FoodType;
-import jakarta.persistence.*;
-import lombok.Data;
-
-@Data
-@Entity
-@Table(name = "food")
-public class Food {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id_food")
-    private int id;
-
-    @Column(name = "manufacturer", nullable = false, length = 100)
-    private String manufacturer;
-
-    @Column(name = "name_food", nullable = false, length = 20)
-    private String name;
-
-    @Column(name = "type_food", nullable = false)
-    private FoodType type;
-
-    public Food(String manufacturer, String name, FoodType type) {
-        this.manufacturer = manufacturer;
-        this.name = name;
-        this.type = type;
-    }
-
-    public Food() {
-    }
-}
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/Organisation.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/Organisation.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,33 +1,0 @@
-package finki.paw5.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-@Data
-@Entity
-@Table(name = "organisation")
-public class Organisation {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id_organisation")
-    private int id;
-
-    @Column(name = "name_organisation", nullable = false, length = 100)
-    private String name;
-
-    @Column(name = "email_organisation", nullable = false, length = 100, unique = true)
-    private String email;
-
-    @Column(name = "billing_information", nullable = false, length = 20, unique = true)
-    private String billingInformation;
-
-    public Organisation(String name, String email, String billingInformation) {
-        this.name = name;
-        this.email = email;
-        this.billingInformation = billingInformation;
-    }
-
-    public Organisation() {
-    }
-}
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/PersonalProfile.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/PersonalProfile.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,45 +1,0 @@
-package finki.paw5.model;
-
-import finki.paw5.model.enumerations.*;
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.Id;
-import jakarta.persistence.Table;
-import lombok.Data;
-
-@Data
-@Entity
-@Table(name = "personal_profile")
-public class PersonalProfile {
-
-    @Id
-    @Column(name = "id_pet", nullable = false)
-    private int id;
-
-    @Column(name = "friendly_to_kids", nullable = false)
-    private FriendlyToKids friendlyToKids;
-
-    @Column(name = "friendly_to_pets", nullable = false)
-    private FriendlyToPets friendlyToPets;
-
-    @Column(name = "attention", nullable = false)
-    private AttentionNeed attentionNeed;
-
-    @Column(name = "physical_activity", nullable = false)
-    private PhysicalActivity physicalActivity;
-
-    @Column(name = "grooming_needed", nullable = false)
-    private GroomingNeed groomingNeed;
-
-    public PersonalProfile(int id, FriendlyToKids friendlyToKids, FriendlyToPets friendlyToPets, AttentionNeed attentionNeed, PhysicalActivity physicalActivity, GroomingNeed groomingNeed) {
-        this.id = id;
-        this.friendlyToKids = friendlyToKids;
-        this.friendlyToPets = friendlyToPets;
-        this.attentionNeed = attentionNeed;
-        this.physicalActivity = physicalActivity;
-        this.groomingNeed = groomingNeed;
-    }
-
-    public PersonalProfile() {
-    }
-}
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/Pet.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/Pet.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,65 +1,0 @@
-package finki.paw5.model;
-
-import finki.paw5.model.enumerations.AgeGroup;
-import finki.paw5.model.enumerations.Gender;
-import finki.paw5.model.enumerations.Size;
-import finki.paw5.model.enumerations.Species;
-import jakarta.persistence.*;
-import lombok.Data;
-
-@Data
-@Entity
-@Table(name = "pet")
-public class Pet {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id_pet")
-    private int id;
-
-    @Column(name = "url_pet_image", length = 200)
-    private String imageUrl;
-
-    @Column(name = "age_group", nullable = false)
-    private AgeGroup ageGroup;
-
-    @Column(name = "size_pet", nullable = false)
-    private Size size;
-
-    @Column(name = "breed", length = 100)
-    private String breed;
-
-    @Column(name = "name_pet", length = 20)
-    private String name;
-
-    @Column(name = "species", nullable = false)
-    private Species species;
-
-    @Column(name = "gender", nullable = false)
-    private Gender gender;
-
-    @Column(name = "can_be_fostered", nullable = false)
-    private boolean canBeFostered;
-
-    @Column(name = "id_adoption")
-    private int adoptionId;
-
-    @Column(name = "id_shelter")
-    private int shelterId;
-
-    public Pet(String imageUrl, AgeGroup ageGroup, Size size, String breed, String name, Species species, Gender gender, boolean canBeFostered, int adoptionId, int shelterId) {
-        this.imageUrl = imageUrl;
-        this.ageGroup = ageGroup;
-        this.size = size;
-        this.breed = breed;
-        this.name = name;
-        this.species = species;
-        this.gender = gender;
-        this.canBeFostered = canBeFostered;
-        this.adoptionId = adoptionId;
-        this.shelterId = shelterId;
-    }
-
-    public Pet() {
-    }
-}
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/Post.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/Post.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,44 +1,0 @@
-package finki.paw5.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-import java.time.LocalDate;
-import java.util.Date;
-
-@Data
-@Entity
-@Table(name = "post")
-public class Post {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id_post")
-    private int id;
-
-    @Column(name="date_post", nullable = false)
-    private LocalDate dateCreated;
-
-    @Column(name="url_thumbanail", length = 200)
-    private String thumbnailUrl;
-
-    @Column(name="id_pet", nullable = false)
-    private int petId;
-
-    @Column(name="id_surendee")
-    private int surendeeId;
-
-    @Column(name="id_employee")
-    private int employeeId;
-
-    public Post(LocalDate dateCreated, String thumbnailUrl, int petId, int surendeeId, int employeeId) {
-        this.dateCreated = dateCreated;
-        this.thumbnailUrl = thumbnailUrl;
-        this.petId = petId;
-        this.surendeeId = surendeeId;
-        this.employeeId = employeeId;
-    }
-
-    public Post() {
-    }
-}
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/Shelter.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/Shelter.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,41 +1,0 @@
-package finki.paw5.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-@Data
-@Entity
-@Table(name = "shelter")
-public class Shelter {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id_shelter")
-    private int id;
-
-    @Column(name = "address_shelter", nullable = false, length = 100)
-    private String address;
-
-    @Column(name = "telephone_shelter", nullable = false, length = 20)
-    private String telephone;
-
-    @Column(name = "id_organisation")
-    private int organisationId;
-
-    @Column(name = "name_shelter", nullable = false, length = 100)
-    private String name;
-
-    @Column(name = "email_shelter", nullable = false, length = 100, unique = true)
-    private String email;
-
-    public Shelter(String address, String telephone, int organisationId, String name, String email) {
-        this.address = address;
-        this.telephone = telephone;
-        this.organisationId = organisationId;
-        this.name = name;
-        this.email = email;
-    }
-
-    public Shelter() {
-    }
-}
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/Surendee.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/Surendee.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,21 +1,0 @@
-package finki.paw5.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-import java.time.LocalDate;
-
-@Data
-@Entity
-@Table(name = "surendee")
-@PrimaryKeyJoinColumn(name = "id_user")
-public class Surendee extends User {
-
-    public Surendee(LocalDate dateCreated, String name, String email, String password, String telephone) {
-        super(dateCreated, name, email, password, telephone);
-    }
-
-    public Surendee() {
-    }
-
-}
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/Therapy.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/Therapy.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,36 +1,0 @@
-package finki.paw5.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-import java.time.LocalDate;
-import java.util.Date;
-
-@Data
-@Entity
-@Table(name = "therapy")
-public class Therapy {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id_therapy")
-    private int id;
-
-    @Column(name = "health_problem", nullable = false, length = 100)
-    private String healthProblem;
-
-    @Column(name = "start_date")
-    private LocalDate startDate;
-
-    @Column(name = "end_date")
-    private LocalDate endDate;
-
-    public Therapy(String healthProblem, LocalDate startDate, LocalDate endDate) {
-        this.healthProblem = healthProblem;
-        this.startDate = startDate;
-        this.endDate = endDate;
-    }
-
-    public Therapy() {
-    }
-}
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/User.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/User.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,45 +1,0 @@
-package finki.paw5.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-import java.time.LocalDate;
-import java.util.Date;
-
-@Data
-@Entity
-@Table(name = "user_table")
-@Inheritance(strategy = InheritanceType.JOINED)
-public class User {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id_user")
-    protected int id;
-
-    @Column(name = "date_created_user", nullable = false)
-    protected LocalDate dateCreated;
-
-    @Column(name = "name_user", nullable = false, length = 100)
-    protected String name;
-
-    @Column(name = "email_user", nullable = false, length = 100, unique = true)
-    protected String email;
-
-    @Column(name = "password_user", nullable = false, length = 20)
-    protected String password;
-
-    @Column(name = "telephone_user", length = 20)
-    protected String telephone;
-
-    public User(LocalDate dateCreated, String name, String email, String password, String telephone) {
-        this.dateCreated = dateCreated;
-        this.name = name;
-        this.email = email;
-        this.password = password;
-        this.telephone = telephone;
-    }
-
-    public User() {
-    }
-}
Index: Prototype Application/Paw5/src/main/java/finki/paw5/model/VetClinic.java
===================================================================
--- Prototype Application/Paw5/src/main/java/finki/paw5/model/VetClinic.java	(revision 038c9f7d7a3efdd074de380395b62620e574d3b0)
+++ 	(revision )
@@ -1,33 +1,0 @@
-package finki.paw5.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-@Data
-@Entity
-@Table(name = "vet_clinic")
-public class VetClinic {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id_vet_clinic")
-    private int id;
-
-    @Column(name = "telephone_vet_clinic", nullable = false, length = 20)
-    private String telephone;
-
-    @Column(name = "address_vet_clinic", nullable = false, length = 100)
-    private String address;
-
-    @Column(name = "name_vet_clinic", nullable = false, length = 100)
-    private String name;
-
-    public VetClinic(String telephone, String address, String name) {
-        this.telephone = telephone;
-        this.address = address;
-        this.name = name;
-    }
-
-    public VetClinic() {
-    }
-}
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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Admin.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,20 @@
+package finki.paw5.model.entities;
+
+import jakarta.persistence.*;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+@Entity
+@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) {
+        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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Adopter.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,75 @@
+package finki.paw5.model.entities;
+
+import finki.paw5.model.enumerations.FreeTime;
+import finki.paw5.model.enumerations.Funds;
+import finki.paw5.model.enumerations.Housing;
+import finki.paw5.model.enumerations.PhysicalActivity;
+import jakarta.persistence.*;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+@Entity
+@Table(name = "adopter")
+@PrimaryKeyJoinColumn(name = "id_user")
+public class Adopter extends User {
+
+    @Column(name = "free_time")
+    private FreeTime freeTime;
+
+    @Column(name = "funds")
+    private Funds funds;
+
+    @Column(name = "has_other_pets")
+    private boolean hasOtherPets;
+
+    @Column(name = "has_kids")
+    private boolean hasKids;
+
+    @Column(name = "housing")
+    private Housing housing;
+
+    @Column(name = "physical_activity_adopters")
+    private PhysicalActivity physicalActivity;
+
+    @Column(name = "will_foster")
+    private boolean willFoster;
+
+    @Column(name = "is_verified", nullable = false)
+    private boolean verified;
+
+    @Column(name = "verified_by_employee")
+    private int verifiedByEmployeeId;
+
+    public Adopter(LocalDate dateCreated, String name, String email, String password, String telephone,
+                   FreeTime freeTime, Funds funds, boolean hasOtherPets, boolean hasKids, Housing housing,
+                   PhysicalActivity physicalActivity, boolean willFoster, boolean verified, int verifiedByEmployeeId) {
+        super(dateCreated, name, email, password, telephone);
+        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(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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Adoption.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,40 @@
+package finki.paw5.model.entities;
+
+import jakarta.persistence.*;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.util.Date;
+
+@Data
+@Entity
+@Table(name = "adoption")
+public class Adoption {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id_adoption")
+    private int id;
+
+    @Column(name = "start_date", nullable = false)
+    private LocalDate startDate;
+
+    @Column(name = "end_date_foster")
+    private LocalDate endDateFoster;
+
+    @Column(name = "approved", nullable = false)
+    private boolean approved;
+
+    @Column(name = "id_adopter", nullable = false)
+    private int adopterId;
+
+    public Adoption(LocalDate startDate, LocalDate endDateFoster, boolean approved, int adopterId) {
+        this.startDate = startDate;
+        this.endDateFoster = endDateFoster;
+        this.approved = approved;
+        this.adopterId = adopterId;
+    }
+
+    public Adoption() {
+    }
+}
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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Category.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,25 @@
+package finki.paw5.model.entities;
+
+import jakarta.persistence.*;
+import lombok.Data;
+
+@Data
+@Entity
+@Table(name = "category")
+public class Category {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id_category")
+    private int id;
+
+    @Column(name = "name_category", nullable = false, length = 100)
+    private String name;
+
+    public Category(String name) {
+        this.name = name;
+    }
+
+    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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Donor.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,34 @@
+package finki.paw5.model.entities;
+
+import jakarta.persistence.*;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+@Entity
+@Table(name = "donor")
+@PrimaryKeyJoinColumn(name = "id_user")
+public class Donor extends User {
+
+    @Column(name = "is_from_organisation", nullable = false)
+    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) {
+        super(dateCreated, name, email, password, telephone);
+        this.fromOrganisation = fromOrganisation;
+        this.organisationName = organisationName;
+    }
+
+    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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Employee.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,46 @@
+package finki.paw5.model.entities;
+
+import jakarta.persistence.*;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+@Entity
+@Table(name = "employee")
+@PrimaryKeyJoinColumn(name = "id_user")
+public class Employee extends User {
+
+    @Column(name = "position_employee", nullable = false, length = 20)
+    private String position;
+
+    @Column(name = "id_shelter", nullable = false)
+    private int shelterId;
+
+    @Column(name = "is_verified", nullable = false)
+    private boolean verified;
+
+    @Column(name = "verified_by_admin")
+    private int verifiedByAdminId;
+
+    public Employee(LocalDate dateCreated, String name, String email, String password, String telephone,
+                    String position, int shelterId, boolean verified, int verifiedByAdminId) {
+        super(dateCreated, name, email, password, telephone);
+        this.position = position;
+        this.shelterId = shelterId;
+        this.verified = verified;
+        this.verifiedByAdminId = verifiedByAdminId;
+    }
+
+    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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Food.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,34 @@
+package finki.paw5.model.entities;
+
+import finki.paw5.model.enumerations.FoodType;
+import jakarta.persistence.*;
+import lombok.Data;
+
+@Data
+@Entity
+@Table(name = "food")
+public class Food {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id_food")
+    private int id;
+
+    @Column(name = "manufacturer", nullable = false, length = 100)
+    private String manufacturer;
+
+    @Column(name = "name_food", nullable = false, length = 20)
+    private String name;
+
+    @Column(name = "type_food", nullable = false)
+    private FoodType type;
+
+    public Food(String manufacturer, String name, FoodType type) {
+        this.manufacturer = manufacturer;
+        this.name = name;
+        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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Organisation.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,33 @@
+package finki.paw5.model.entities;
+
+import jakarta.persistence.*;
+import lombok.Data;
+
+@Data
+@Entity
+@Table(name = "organisation")
+public class Organisation {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id_organisation")
+    private int id;
+
+    @Column(name = "name_organisation", nullable = false, length = 100)
+    private String name;
+
+    @Column(name = "email_organisation", nullable = false, length = 100, unique = true)
+    private String email;
+
+    @Column(name = "billing_information", nullable = false, length = 20, unique = true)
+    private String billingInformation;
+
+    public Organisation(String name, String email, String billingInformation) {
+        this.name = name;
+        this.email = email;
+        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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/PersonalProfile.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,45 @@
+package finki.paw5.model.entities;
+
+import finki.paw5.model.enumerations.*;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
+import lombok.Data;
+
+@Data
+@Entity
+@Table(name = "personal_profile")
+public class PersonalProfile {
+
+    @Id
+    @Column(name = "id_pet", nullable = false)
+    private int id;
+
+    @Column(name = "friendly_to_kids", nullable = false)
+    private FriendlyToKids friendlyToKids;
+
+    @Column(name = "friendly_to_pets", nullable = false)
+    private FriendlyToPets friendlyToPets;
+
+    @Column(name = "attention", nullable = false)
+    private AttentionNeed attentionNeed;
+
+    @Column(name = "physical_activity", nullable = false)
+    private PhysicalActivity physicalActivity;
+
+    @Column(name = "grooming_needed", nullable = false)
+    private GroomingNeed groomingNeed;
+
+    public PersonalProfile(int id, FriendlyToKids friendlyToKids, FriendlyToPets friendlyToPets, AttentionNeed attentionNeed, PhysicalActivity physicalActivity, GroomingNeed groomingNeed) {
+        this.id = id;
+        this.friendlyToKids = friendlyToKids;
+        this.friendlyToPets = friendlyToPets;
+        this.attentionNeed = attentionNeed;
+        this.physicalActivity = physicalActivity;
+        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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Pet.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,65 @@
+package finki.paw5.model.entities;
+
+import finki.paw5.model.enumerations.AgeGroup;
+import finki.paw5.model.enumerations.Gender;
+import finki.paw5.model.enumerations.Size;
+import finki.paw5.model.enumerations.Species;
+import jakarta.persistence.*;
+import lombok.Data;
+
+@Data
+@Entity
+@Table(name = "pet")
+public class Pet {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id_pet")
+    private int id;
+
+    @Column(name = "url_pet_image", length = 200)
+    private String imageUrl;
+
+    @Column(name = "age_group", nullable = false)
+    private AgeGroup ageGroup;
+
+    @Column(name = "size_pet", nullable = false)
+    private Size size;
+
+    @Column(name = "breed", length = 100)
+    private String breed;
+
+    @Column(name = "name_pet", length = 20)
+    private String name;
+
+    @Column(name = "species", nullable = false)
+    private Species species;
+
+    @Column(name = "gender", nullable = false)
+    private Gender gender;
+
+    @Column(name = "can_be_fostered", nullable = false)
+    private boolean canBeFostered;
+
+    @Column(name = "id_adoption")
+    private int adoptionId;
+
+    @Column(name = "id_shelter")
+    private int shelterId;
+
+    public Pet(String imageUrl, AgeGroup ageGroup, Size size, String breed, String name, Species species, Gender gender, boolean canBeFostered, int adoptionId, int shelterId) {
+        this.imageUrl = imageUrl;
+        this.ageGroup = ageGroup;
+        this.size = size;
+        this.breed = breed;
+        this.name = name;
+        this.species = species;
+        this.gender = gender;
+        this.canBeFostered = canBeFostered;
+        this.adoptionId = adoptionId;
+        this.shelterId = shelterId;
+    }
+
+    public Pet() {
+    }
+}
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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Post.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,44 @@
+package finki.paw5.model.entities;
+
+import jakarta.persistence.*;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.util.Date;
+
+@Data
+@Entity
+@Table(name = "post")
+public class Post {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id_post")
+    private int id;
+
+    @Column(name="date_post", nullable = false)
+    private LocalDate dateCreated;
+
+    @Column(name="url_thumbanail", length = 200)
+    private String thumbnailUrl;
+
+    @Column(name="id_pet", nullable = false)
+    private int petId;
+
+    @Column(name="id_surendee")
+    private int surendeeId;
+
+    @Column(name="id_employee")
+    private int employeeId;
+
+    public Post(LocalDate dateCreated, String thumbnailUrl, int petId, int surendeeId, int employeeId) {
+        this.dateCreated = dateCreated;
+        this.thumbnailUrl = thumbnailUrl;
+        this.petId = petId;
+        this.surendeeId = surendeeId;
+        this.employeeId = employeeId;
+    }
+
+    public Post() {
+    }
+}
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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Shelter.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,41 @@
+package finki.paw5.model.entities;
+
+import jakarta.persistence.*;
+import lombok.Data;
+
+@Data
+@Entity
+@Table(name = "shelter")
+public class Shelter {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id_shelter")
+    private int id;
+
+    @Column(name = "address_shelter", nullable = false, length = 100)
+    private String address;
+
+    @Column(name = "telephone_shelter", nullable = false, length = 20)
+    private String telephone;
+
+    @Column(name = "id_organisation")
+    private int organisationId;
+
+    @Column(name = "name_shelter", nullable = false, length = 100)
+    private String name;
+
+    @Column(name = "email_shelter", nullable = false, length = 100, unique = true)
+    private String email;
+
+    public Shelter(String address, String telephone, int organisationId, String name, String email) {
+        this.address = address;
+        this.telephone = telephone;
+        this.organisationId = organisationId;
+        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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Surendee.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,21 @@
+package finki.paw5.model.entities;
+
+import jakarta.persistence.*;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+@Entity
+@Table(name = "surendee")
+@PrimaryKeyJoinColumn(name = "id_user")
+public class Surendee extends User {
+
+    public Surendee(LocalDate dateCreated, String name, String email, String password, String telephone) {
+        super(dateCreated, name, email, password, telephone);
+    }
+
+    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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/Therapy.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,36 @@
+package finki.paw5.model.entities;
+
+import jakarta.persistence.*;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.util.Date;
+
+@Data
+@Entity
+@Table(name = "therapy")
+public class Therapy {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id_therapy")
+    private int id;
+
+    @Column(name = "health_problem", nullable = false, length = 100)
+    private String healthProblem;
+
+    @Column(name = "start_date")
+    private LocalDate startDate;
+
+    @Column(name = "end_date")
+    private LocalDate endDate;
+
+    public Therapy(String healthProblem, LocalDate startDate, LocalDate endDate) {
+        this.healthProblem = healthProblem;
+        this.startDate = startDate;
+        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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/User.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,45 @@
+package finki.paw5.model.entities;
+
+import jakarta.persistence.*;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.util.Date;
+
+@Data
+@Entity
+@Table(name = "user_table")
+@Inheritance(strategy = InheritanceType.JOINED)
+public class User {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id_user")
+    protected int id;
+
+    @Column(name = "date_created_user", nullable = false)
+    protected LocalDate dateCreated;
+
+    @Column(name = "name_user", nullable = false, length = 100)
+    protected String name;
+
+    @Column(name = "email_user", nullable = false, length = 100, unique = true)
+    protected String email;
+
+    @Column(name = "password_user", nullable = false, length = 20)
+    protected String password;
+
+    @Column(name = "telephone_user", length = 20)
+    protected String telephone;
+
+    public User(LocalDate dateCreated, String name, String email, String password, String telephone) {
+        this.dateCreated = dateCreated;
+        this.name = name;
+        this.email = email;
+        this.password = password;
+        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 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
+++ Prototype Application/Paw5/src/main/java/finki/paw5/model/entities/VetClinic.java	(revision 3d3e59d3cf3c5f5487e51bf341f55d3179bb29eb)
@@ -0,0 +1,33 @@
+package finki.paw5.model.entities;
+
+import jakarta.persistence.*;
+import lombok.Data;
+
+@Data
+@Entity
+@Table(name = "vet_clinic")
+public class VetClinic {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id_vet_clinic")
+    private int id;
+
+    @Column(name = "telephone_vet_clinic", nullable = false, length = 20)
+    private String telephone;
+
+    @Column(name = "address_vet_clinic", nullable = false, length = 100)
+    private String address;
+
+    @Column(name = "name_vet_clinic", nullable = false, length = 100)
+    private String name;
+
+    public VetClinic(String telephone, String address, String name) {
+        this.telephone = telephone;
+        this.address = address;
+        this.name = name;
+    }
+
+    public VetClinic() {
+    }
+}
