package com.kpaudel.model;
import jakarta.persistence.*;
import lombok.*;
import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.util.UUID;
@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class JobApplication {
@Id
@GeneratedValue
private UUID id;
@ManyToOne(optional = false)
private Company company;
private String role;
private String location;
private LocalDate appliedDate;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private ApplicationStatus status = ApplicationStatus.INTERESTED;
private String source;
private String jobUrl;
private String salaryExpectation;
@Column(columnDefinition = "text")
private String notes;
private OffsetDateTime lastUpdated;
@ManyToOne(optional = false)
@JoinColumn(name = "user_id", nullable = false)
private User user;
@PrePersist
@PreUpdate
public void updateTimeStamp(){
this.lastUpdated=OffsetDateTime.now();
}
}