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.
64 lines
1.8 KiB
64 lines
1.8 KiB
package com.mydreamjob.onboarding;
|
|
|
|
import jakarta.persistence.Column;
|
|
import jakarta.persistence.Entity;
|
|
import jakarta.persistence.EntityListeners;
|
|
import jakarta.persistence.GeneratedValue;
|
|
import jakarta.persistence.GenerationType;
|
|
import jakarta.persistence.Id;
|
|
import jakarta.persistence.Table;
|
|
import jakarta.persistence.UniqueConstraint;
|
|
import jakarta.persistence.Version;
|
|
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;
|
|
|
|
@Data
|
|
@Builder
|
|
@NoArgsConstructor
|
|
@AllArgsConstructor
|
|
@Entity
|
|
@Table(
|
|
name = "student_onboarding_progress",
|
|
uniqueConstraints = @UniqueConstraint(
|
|
name = "uk_student_onboarding_progress_student_item",
|
|
columnNames = {"student_user_id", "item_id"}))
|
|
@EntityListeners(AuditingEntityListener.class)
|
|
public class StudentOnboardingProgress {
|
|
|
|
@Id
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
private Long id;
|
|
|
|
@Column(name = "student_user_id", nullable = false)
|
|
private Long studentUserId;
|
|
|
|
@Column(name = "item_id", nullable = false)
|
|
private Long itemId;
|
|
|
|
@Column(nullable = false)
|
|
@Builder.Default
|
|
private Boolean completed = false;
|
|
|
|
@Column(name = "completed_at")
|
|
private LocalDateTime completedAt;
|
|
|
|
@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;
|
|
}
|
|
|