Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/enumerations/EmploymentStatus.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/enumerations/EmploymentStatus.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/enumerations/EmploymentStatus.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
@@ -0,0 +1,5 @@
+package mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.enumerations;
+
+public enum EmploymentStatus {
+    FULL_TIME, PART_TIME
+}
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/enumerations/JobType.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/enumerations/JobType.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/enumerations/JobType.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
@@ -0,0 +1,5 @@
+package mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.enumerations;
+
+public enum JobType {
+    JOB, INTERNSHIP
+}
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/job_advertisements/DTO/JobAdDetailsDTO.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/job_advertisements/DTO/JobAdDetailsDTO.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/job_advertisements/DTO/JobAdDetailsDTO.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
@@ -0,0 +1,21 @@
+package mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.job_advertisements.DTO;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+@AllArgsConstructor
+public class JobAdDetailsDTO {
+    private String recruiterName;
+    private Long recruiterId;
+    private final Long id;
+    private String title;
+    private String description;
+    private String industry;
+    private int startingSalary;
+    private String postedOn;
+    private String activeUntil;
+    private boolean isActive;
+    private String jobType;
+    private String employmentStatus;
+}
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/job_advertisements/DTO/JobAdvertisementDTO.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/job_advertisements/DTO/JobAdvertisementDTO.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/job_advertisements/DTO/JobAdvertisementDTO.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
@@ -0,0 +1,21 @@
+package mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.job_advertisements.DTO;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class JobAdvertisementDTO {
+    private String email;
+    private String title;
+    private String description;
+    private String industry;
+    private int startingSalary;
+    private String activeUntil;
+    private String jobType;
+    private String employmentStatus;
+}
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/job_advertisements/JobAdvertisement.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/job_advertisements/JobAdvertisement.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/job_advertisements/JobAdvertisement.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
@@ -0,0 +1,79 @@
+package mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.job_advertisements;
+
+import jakarta.persistence.*;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.enumerations.EmploymentStatus;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.enumerations.JobType;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.job_advertisements.DTO.JobAdDetailsDTO;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.User;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Entity
+@NoArgsConstructor
+@AllArgsConstructor
+@Data
+@Table(name = "job_advertisements")
+public class JobAdvertisement {
+
+    public JobAdvertisement(User recruiter, String title, String description, String industry, int startingSalary, LocalDate activeUntil, JobType jobType, EmploymentStatus employmentStatus) {
+        this.recruiter = recruiter;
+        this.title = title;
+        this.description = description;
+        this.industry = industry;
+        this.startingSalary = startingSalary;
+        this.postedOn = LocalDateTime.now();
+        this.activeUntil = activeUntil;
+        this.isActive = true;
+        this.jobType = jobType;
+        this.employmentStatus = employmentStatus;
+    }
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @ManyToOne
+    private User recruiter;
+
+    private String title;
+    private String description;
+    private String industry;
+    private int startingSalary;
+    private LocalDateTime postedOn;
+    private LocalDate activeUntil;
+    private boolean isActive;
+
+    @Enumerated(EnumType.STRING)
+    JobType jobType;
+
+    @Enumerated(EnumType.STRING)
+    EmploymentStatus employmentStatus;
+
+    public boolean isJobAdActive() {
+        LocalDate date = LocalDate.now();
+        return date.isBefore(activeUntil);
+    }
+
+    public static JobAdDetailsDTO mapToJobAdDetailsDTO(JobAdvertisement jobAdvertisement) {
+
+        return new JobAdDetailsDTO(
+                jobAdvertisement.getRecruiter().getName(),
+                jobAdvertisement.getRecruiter().getId(),
+                jobAdvertisement.getId(),
+                jobAdvertisement.getTitle(),
+                jobAdvertisement.getDescription(),
+                jobAdvertisement.getIndustry(),
+                jobAdvertisement.getStartingSalary(),
+                jobAdvertisement.getPostedOn().toString(),
+                jobAdvertisement.getActiveUntil().toString(),
+                jobAdvertisement.isJobAdActive(),
+                jobAdvertisement.getJobType().name(),
+                jobAdvertisement.getEmploymentStatus().name()
+        );
+    }
+
+}
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/Admin.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/Admin.java	(revision d8b6c91094bd4c748b347d914a3c4c3745d51587)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/Admin.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
@@ -4,20 +4,19 @@
 import jakarta.persistence.Table;
 import lombok.AllArgsConstructor;
-import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 @Entity
-//@Data
-//@NoArgsConstructor
-//@AllArgsConstructor
-//@Builder
+@Data
+@NoArgsConstructor
 @Table(name = "admins")
 public class Admin extends User {
+
+//    private String name;
+//    private String surname;
+
     @Override
     public String getName() {
         return "Admin";
     }
-//    private String name;
-//    private String surname;
 }
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/DTO/JwtAuthResponse.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/DTO/JwtAuthResponse.java	(revision d8b6c91094bd4c748b347d914a3c4c3745d51587)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/DTO/JwtAuthResponse.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
@@ -10,4 +10,5 @@
 @NoArgsConstructor
 public class JwtAuthResponse {
+    private Long id;
     private String email;
     private String name;
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/DTO/RecruiterDetailsDTO.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/DTO/RecruiterDetailsDTO.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/DTO/RecruiterDetailsDTO.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
@@ -0,0 +1,15 @@
+package mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RecruiterDetailsDTO {
+    private String email;
+    private String companyName;
+    private String companyDescription;
+    private String phoneNumber;
+}
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/JobSeeker.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/JobSeeker.java	(revision d8b6c91094bd4c748b347d914a3c4c3745d51587)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/JobSeeker.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
@@ -5,5 +5,4 @@
 import jakarta.persistence.Table;
 import lombok.AllArgsConstructor;
-import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -14,5 +13,4 @@
 @NoArgsConstructor
 @AllArgsConstructor
-@Builder
 @Table(name = "job_seekers")
 public class JobSeeker extends User {
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/User.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/User.java	(revision d8b6c91094bd4c748b347d914a3c4c3745d51587)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/User.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
@@ -15,9 +15,9 @@
 
 @Entity
-@Inheritance(strategy = InheritanceType.JOINED)
-@Table(name = "users")
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
+@Inheritance(strategy = InheritanceType.JOINED)
+@Table(name = "users")
 public abstract class User implements UserDetails {
 
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/mappers/JobSeekerMapper.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/mappers/JobSeekerMapper.java	(revision d8b6c91094bd4c748b347d914a3c4c3745d51587)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/mappers/JobSeekerMapper.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
@@ -26,4 +26,3 @@
     }
 
-
 }
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/mappers/RecruiterMapper.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/mappers/RecruiterMapper.java	(revision d8b6c91094bd4c748b347d914a3c4c3745d51587)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/mappers/RecruiterMapper.java	(revision 19398adb44637736271a04ab58b1f528cc33908f)
@@ -2,4 +2,5 @@
 
 import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterDTO;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterDetailsDTO;
 import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.Recruiter;
 
@@ -11,4 +12,13 @@
                 recruiter.getPassword(),
                 recruiter.getCompanyName(),
+                recruiter.getPhoneNumber()
+        );
+    }
+
+    public static RecruiterDetailsDTO mapToRecruiterDetailsDTO(Recruiter recruiter) {
+        return new RecruiterDetailsDTO(
+                recruiter.getEmail(),
+                recruiter.getCompanyName(),
+                recruiter.getCompanyDescription(),
                 recruiter.getPhoneNumber()
         );
