source: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/job_advertisements/JobAdvertisement.java@ 19398ad

main
Last change on this file since 19398ad was 19398ad, checked in by 223021 <daniel.ilievski.2@…>, 8 weeks ago

Implemented backend and frontend CRUD operations for job advertisements

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