[19398ad] | 1 | package mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.job_advertisements;
|
---|
| 2 |
|
---|
| 3 | import jakarta.persistence.*;
|
---|
| 4 | import lombok.AllArgsConstructor;
|
---|
| 5 | import lombok.Data;
|
---|
| 6 | import lombok.NoArgsConstructor;
|
---|
| 7 | import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.enumerations.EmploymentStatus;
|
---|
| 8 | import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.enumerations.JobType;
|
---|
| 9 | import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.job_advertisements.DTO.JobAdDetailsDTO;
|
---|
[28b3398] | 10 | import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.Recruiter;
|
---|
[19398ad] | 11 | import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.User;
|
---|
| 12 |
|
---|
| 13 | import java.time.LocalDate;
|
---|
| 14 | import java.time.LocalDateTime;
|
---|
| 15 |
|
---|
| 16 | @Entity
|
---|
| 17 | @NoArgsConstructor
|
---|
| 18 | @AllArgsConstructor
|
---|
| 19 | @Data
|
---|
| 20 | @Table(name = "job_advertisements")
|
---|
| 21 | public class JobAdvertisement {
|
---|
| 22 |
|
---|
[28b3398] | 23 | public JobAdvertisement(Recruiter recruiter, String title, String description, String industry, int startingSalary, LocalDate activeUntil, JobType jobType, EmploymentStatus employmentStatus) {
|
---|
[19398ad] | 24 | this.recruiter = recruiter;
|
---|
| 25 | this.title = title;
|
---|
| 26 | this.description = description;
|
---|
| 27 | this.industry = industry;
|
---|
| 28 | this.startingSalary = startingSalary;
|
---|
| 29 | this.postedOn = LocalDateTime.now();
|
---|
| 30 | this.activeUntil = activeUntil;
|
---|
| 31 | this.isActive = true;
|
---|
| 32 | this.jobType = jobType;
|
---|
| 33 | this.employmentStatus = employmentStatus;
|
---|
| 34 | }
|
---|
| 35 |
|
---|
| 36 | @Id
|
---|
| 37 | @GeneratedValue(strategy = GenerationType.IDENTITY)
|
---|
| 38 | private Long id;
|
---|
| 39 |
|
---|
| 40 | @ManyToOne
|
---|
[28b3398] | 41 | private Recruiter recruiter;
|
---|
[19398ad] | 42 |
|
---|
| 43 | private String title;
|
---|
| 44 | private String description;
|
---|
| 45 | private String industry;
|
---|
| 46 | private int startingSalary;
|
---|
| 47 | private LocalDateTime postedOn;
|
---|
| 48 | private LocalDate activeUntil;
|
---|
| 49 | private boolean isActive;
|
---|
| 50 |
|
---|
| 51 | @Enumerated(EnumType.STRING)
|
---|
| 52 | JobType jobType;
|
---|
| 53 |
|
---|
| 54 | @Enumerated(EnumType.STRING)
|
---|
| 55 | EmploymentStatus employmentStatus;
|
---|
| 56 |
|
---|
| 57 | public boolean isJobAdActive() {
|
---|
| 58 | LocalDate date = LocalDate.now();
|
---|
| 59 | return date.isBefore(activeUntil);
|
---|
| 60 | }
|
---|
| 61 |
|
---|
| 62 | public static JobAdDetailsDTO mapToJobAdDetailsDTO(JobAdvertisement jobAdvertisement) {
|
---|
| 63 |
|
---|
| 64 | return new JobAdDetailsDTO(
|
---|
| 65 | jobAdvertisement.getRecruiter().getName(),
|
---|
| 66 | jobAdvertisement.getRecruiter().getId(),
|
---|
| 67 | jobAdvertisement.getId(),
|
---|
| 68 | jobAdvertisement.getTitle(),
|
---|
| 69 | jobAdvertisement.getDescription(),
|
---|
| 70 | jobAdvertisement.getIndustry(),
|
---|
| 71 | jobAdvertisement.getStartingSalary(),
|
---|
| 72 | jobAdvertisement.getPostedOn().toString(),
|
---|
| 73 | jobAdvertisement.getActiveUntil().toString(),
|
---|
| 74 | jobAdvertisement.isJobAdActive(),
|
---|
| 75 | jobAdvertisement.getJobType().name(),
|
---|
| 76 | jobAdvertisement.getEmploymentStatus().name()
|
---|
| 77 | );
|
---|
| 78 | }
|
---|
| 79 |
|
---|
| 80 | }
|
---|