1 package org.petify.backend.models; 2 3 import jakarta.persistence.Column; 4 import jakarta.persistence.Entity; 5 import jakarta.persistence.GeneratedValue; 6 import jakarta.persistence.GenerationType; 7 import jakarta.persistence.Id; 8 import jakarta.persistence.JoinColumn; 9 import jakarta.persistence.ManyToOne; 10 import jakarta.persistence.Table; 11 import lombok.Getter; 12 import lombok.Setter; 13 14 import java.time.LocalDateTime; 15 16 @Entity 17 @Table(name = "volunteer_applications") 18 @Getter 19 @Setter 20 public class VolunteerApplication { 21 22 @Id 23 @GeneratedValue(strategy = GenerationType.IDENTITY) 24 private Long id; 25 26 @ManyToOne 27 @JoinColumn(name = "user_id", nullable = false) 28 private ApplicationUser user; 29 30 @Column(name = "experience") 31 private String experience; 32 33 @Column(name = "motivation") 34 private String motivation; 35 36 @Column(name = "availability") 37 private String availability; 38 39 @Column(name = "skills") 40 private String skills; 41 42 @Column(name = "application_date") 43 private LocalDateTime applicationDate = LocalDateTime.now(); 44 45 @Column(name = "processed_date") 46 private LocalDateTime processedDate; 47 48 @Column(name = "status") 49 private String status = "PENDING"; 50 51 @Column(name = "rejection_reason") 52 private String rejectionReason; 53 }