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.
 
 
 

76 lines
2.2 KiB

package com.mydreamjob.assessment;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.time.LocalDateTime;
/**
* 测评定义(V34/V35)。
*
* <p>{@code questionCount} 为题库总题数(72),{@code attemptQuestionCount} 为每次答卷抽题数(30),
* {@code minPerDimension} 为每个维度最少抽题数(5)。</p>
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "assessment_definitions")
@EntityListeners(AuditingEntityListener.class)
public class AssessmentDefinition {
public static final String STATUS_ACTIVE = "ACTIVE";
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "type_code", nullable = false, length = 40)
private String typeCode;
@Column(name = "display_name", nullable = false, length = 100)
private String displayName;
@Column(length = 1000)
private String description;
@Column(columnDefinition = "TEXT")
private String instructions;
@Column(nullable = false, length = 20)
@Builder.Default
private String status = STATUS_ACTIVE;
@Column(name = "scale_type", nullable = false, length = 20)
private String scaleType;
@Column(name = "question_count", nullable = false)
private Integer questionCount;
@Column(name = "attempt_question_count", nullable = false)
private Integer attemptQuestionCount;
@Column(name = "min_per_dimension", nullable = false)
private Integer minPerDimension;
@Column(name = "question_set_version", nullable = false, length = 40)
private String questionSetVersion;
@Column(name = "rules_version", nullable = false, length = 40)
private String rulesVersion;
@CreatedDate
@Column(name = "created_at", nullable = false, updatable = false)
private LocalDateTime createdAt;
@LastModifiedDate
@Column(name = "updated_at", nullable = false)
private LocalDateTime updatedAt;
}