ai creates booking

This commit is contained in:
androidlover5842
2026-01-24 19:22:37 +05:30
parent b8c9f8dac4
commit ac79d6d1c0
18 changed files with 559 additions and 12 deletions

View File

@@ -0,0 +1,68 @@
package com.android.trisolarisserver.models.booking
import com.android.trisolarisserver.models.property.Property
import jakarta.persistence.*
import java.time.OffsetDateTime
import java.util.UUID
@Entity
@Table(
name = "inbound_email",
uniqueConstraints = [
UniqueConstraint(columnNames = ["message_id"]),
UniqueConstraint(columnNames = ["property_id", "ota_booking_id"])
]
)
class InboundEmail(
@Id
@GeneratedValue
@Column(columnDefinition = "uuid")
val id: UUID? = null,
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "property_id")
var property: Property? = null,
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "booking_id")
var booking: Booking? = null,
@Column(name = "ota_booking_id")
var otaBookingId: String? = null,
@Column(name = "message_id")
var messageId: String? = null,
@Column(name = "subject")
var subject: String? = null,
@Column(name = "from_address")
var fromAddress: String? = null,
@Column(name = "received_at", columnDefinition = "timestamptz")
var receivedAt: OffsetDateTime? = null,
@Column(name = "status", nullable = false)
@Enumerated(EnumType.STRING)
var status: InboundEmailStatus = InboundEmailStatus.PENDING,
@Column(name = "raw_pdf_path")
var rawPdfPath: String? = null,
@Column(name = "extracted_data", columnDefinition = "jsonb")
var extractedData: String? = null,
@Column(name = "processed_at", columnDefinition = "timestamptz")
var processedAt: OffsetDateTime? = null,
@Column(name = "created_at", nullable = false, columnDefinition = "timestamptz")
val createdAt: OffsetDateTime = OffsetDateTime.now()
)
enum class InboundEmailStatus {
PENDING,
CREATED,
CANCELLED,
SKIPPED,
ERROR
}