package database import ( "github.com/google/uuid" "payment-poc/domain/state" "time" ) type PaymentEntry struct { Id uuid.UUID `db:"id"` Created time.Time `db:"created"` Modified *time.Time `db:"modified"` Gateway state.PaymentGateway `db:"gateway"` State state.PaymentState `db:"state"` Lang *string `db:"lang"` Error *string `db:"error"` // paid amount Amount *int64 `db:"amount"` // preauthorized amount TotalAmount int64 `db:"total_amount"` // used for wspay and viva ECI *string `db:"eci"` // stripe field PaymentIntentId *string `db:"payment_intent_id"` // wspay field WsPayOrderId string `db:"ws_pay_order_id"` ShoppingCardID *string `db:"shopping_card_id"` STAN *string `db:"stan"` Success *int `db:"success"` ApprovalCode *string `db:"approval_code"` // viva field OrderId *OrderId `db:"order_id"` TransactionId *uuid.UUID `db:"transaction_id"` EventId *string `db:"event_id"` } type OrderId string func (o OrderId) MarshalJSON() ([]byte, error) { return []byte(o), nil } func (o *OrderId) UnmarshalJSON(value []byte) error { *o = OrderId(value) return nil }