Files
gremiumhub/legalconsenthub-backend/src/main/kotlin/com/betriebsratkanzlei/legalconsenthub/file/UploadedFile.kt

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,
)