72 lines
1.8 KiB
Kotlin
72 lines
1.8 KiB
Kotlin
package com.android.trisolarisserver.models.booking
|
|
|
|
import com.android.trisolarisserver.models.property.AppUser
|
|
import com.android.trisolarisserver.models.property.Property
|
|
import jakarta.persistence.*
|
|
import java.time.OffsetDateTime
|
|
import java.util.UUID
|
|
|
|
@Entity
|
|
@Table(name = "payment")
|
|
class Payment(
|
|
@Id
|
|
@GeneratedValue
|
|
@Column(columnDefinition = "uuid")
|
|
val id: UUID? = null,
|
|
|
|
@ManyToOne(fetch = FetchType.LAZY, optional = false)
|
|
@JoinColumn(name = "property_id", nullable = false)
|
|
var property: Property,
|
|
|
|
@ManyToOne(fetch = FetchType.LAZY, optional = false)
|
|
@JoinColumn(name = "booking_id", nullable = false)
|
|
var booking: Booking,
|
|
|
|
@Column(name = "amount", nullable = false)
|
|
var amount: Long,
|
|
|
|
@Column(name = "currency", nullable = false)
|
|
var currency: String,
|
|
|
|
@Enumerated(EnumType.STRING)
|
|
@Column(name = "method", nullable = false)
|
|
var method: PaymentMethod,
|
|
|
|
@Column(name = "gateway_payment_id")
|
|
var gatewayPaymentId: String? = null,
|
|
|
|
@Column(name = "gateway_txn_id")
|
|
var gatewayTxnId: String? = null,
|
|
|
|
@Column(name = "bank_ref_num")
|
|
var bankRefNum: String? = null,
|
|
|
|
@Column(name = "mode")
|
|
var mode: String? = null,
|
|
|
|
@Column(name = "pg_type")
|
|
var pgType: String? = null,
|
|
|
|
@Column(name = "payer_vpa")
|
|
var payerVpa: String? = null,
|
|
|
|
@Column(name = "payer_name")
|
|
var payerName: String? = null,
|
|
|
|
@Column(name = "payment_source")
|
|
var paymentSource: String? = null,
|
|
|
|
@Column(name = "reference")
|
|
var reference: String? = null,
|
|
|
|
@Column(name = "notes")
|
|
var notes: String? = null,
|
|
|
|
@Column(name = "received_at", nullable = false, columnDefinition = "timestamptz")
|
|
var receivedAt: OffsetDateTime = OffsetDateTime.now(),
|
|
|
|
@ManyToOne(fetch = FetchType.LAZY)
|
|
@JoinColumn(name = "received_by")
|
|
var receivedBy: AppUser? = null
|
|
)
|