51 lines
1.6 KiB
Kotlin
51 lines
1.6 KiB
Kotlin
package com.betriebsratkanzlei.legalconsenthub.file
|
|
|
|
import com.betriebsratkanzlei.legalconsenthub.application_form.ApplicationForm
|
|
import com.betriebsratkanzlei.legalconsenthub.user.User
|
|
import jakarta.persistence.Column
|
|
import jakarta.persistence.Entity
|
|
import jakarta.persistence.EntityListeners
|
|
import jakarta.persistence.GeneratedValue
|
|
import jakarta.persistence.Id
|
|
import jakarta.persistence.JoinColumn
|
|
import jakarta.persistence.ManyToOne
|
|
import jakarta.persistence.Table
|
|
import org.springframework.data.annotation.CreatedDate
|
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener
|
|
import java.time.Instant
|
|
import java.util.UUID
|
|
|
|
@Entity
|
|
@EntityListeners(AuditingEntityListener::class)
|
|
@Table(name = "uploaded_file")
|
|
class UploadedFile(
|
|
@Id
|
|
@GeneratedValue
|
|
var id: UUID? = null,
|
|
@Column(nullable = false)
|
|
var filename: String,
|
|
@Column(nullable = false)
|
|
var originalFilename: String,
|
|
@Column(nullable = false)
|
|
var size: Long,
|
|
@Column(nullable = false)
|
|
var mimeType: String,
|
|
@Column(nullable = true)
|
|
var organizationId: String? = null,
|
|
@ManyToOne
|
|
@JoinColumn(name = "application_form_id", nullable = true)
|
|
var applicationForm: ApplicationForm? = null,
|
|
@Column(nullable = false)
|
|
var formElementReference: String,
|
|
@Column(nullable = false)
|
|
var storagePath: String,
|
|
@ManyToOne
|
|
@JoinColumn(name = "uploaded_by_id", nullable = true)
|
|
var uploadedBy: User? = null,
|
|
@CreatedDate
|
|
@Column(nullable = false)
|
|
var uploadedAt: Instant? = null,
|
|
@Column(nullable = false)
|
|
var isTemporary: Boolean = false,
|
|
)
|