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
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;
|
|
}
|
|
|