mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-06-09 15:07:49 +00:00
24 lines
1.2 KiB
Go
24 lines
1.2 KiB
Go
package entities
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// PaymentAllocation merepresentasikan hasil FIFO matching dari 1 payment ke
|
|
// tepat 1 sub-row anak (purchase_item / marketing_delivery_product /
|
|
// expense_realization). DB constraint memastikan hanya satu FK yang non-null.
|
|
type PaymentAllocation struct {
|
|
Id uint64 `gorm:"primaryKey;autoIncrement"`
|
|
PaymentId uint `gorm:"not null;index"`
|
|
PurchaseItemId *uint `gorm:"column:purchase_item_id"`
|
|
MarketingDeliveryProductId *uint `gorm:"column:marketing_delivery_product_id"`
|
|
ExpenseRealizationId *uint64 `gorm:"column:expense_realization_id"`
|
|
Amount float64 `gorm:"type:numeric(15,3);not null"`
|
|
AllocatedAt time.Time `gorm:"type:timestamptz;not null;default:NOW()"`
|
|
|
|
Payment *Payment `gorm:"foreignKey:PaymentId;references:Id"`
|
|
PurchaseItem *PurchaseItem `gorm:"foreignKey:PurchaseItemId;references:Id"`
|
|
MarketingDeliveryProduct *MarketingDeliveryProduct `gorm:"foreignKey:MarketingDeliveryProductId;references:Id"`
|
|
ExpenseRealization *ExpenseRealization `gorm:"foreignKey:ExpenseRealizationId;references:Id"`
|
|
}
|