You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

40 lines
2.1 KiB

package com.mydreamjob.recommendation;
import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.JdbcTypeCode;
import org.hibernate.type.SqlTypes;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.time.LocalDateTime;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "job_recommendation_profiles")
@EntityListeners(AuditingEntityListener.class)
public class JobRecommendationProfile {
public static final String PENDING_REVIEW = "PENDING_REVIEW";
public static final String APPROVED = "APPROVED";
public static final String REJECTED = "REJECTED";
public static final String DISABLED = "DISABLED";
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
@Column(name = "job_id", nullable = false, unique = true) private Long jobId;
@Column(name = "industry_code", nullable = false, length = 64) private String industryCode;
@Column(name = "job_family_code", nullable = false, length = 64) private String jobFamilyCode;
@Column(name = "riasec_weights_json", columnDefinition = "TEXT") private String riasecWeightsJson;
@Column(name = "ability_expectations_json", columnDefinition = "TEXT") private String abilityExpectationsJson;
@JdbcTypeCode(SqlTypes.TINYINT)
@Column(nullable = false) @Builder.Default private Boolean enabled = true;
@Column(name = "review_status", nullable = false, length = 20) @Builder.Default private String reviewStatus = PENDING_REVIEW;
@Column(name = "review_reason", length = 40) private String reviewReason;
@Column(name = "reviewed_by_user_id") private Long reviewedByUserId;
@Column(name = "reviewed_at") private LocalDateTime reviewedAt;
@Version @Column(nullable = false) @Builder.Default private Long version = 0L;
@CreatedDate @Column(name = "created_at", nullable = false, updatable = false) private LocalDateTime createdAt;
@LastModifiedDate @Column(name = "updated_at", nullable = false) private LocalDateTime updatedAt;
}