package models

import "time"

type Payment struct {
	ID uint `gorm:"primaryKey;autoIncrement" json:"id"`
	PaymentMode *string `gorm:"column:paymentMode;type:varchar(45)" json:"paymentMode"`
	PaymentReference *string `gorm:"column:paymentReference;type:varchar(45)" json:"paymentReference"`
	Amount *float64 `gorm:"column:amount;type:double" json:"amount"`
	UserID *uint `gorm:"column:userId" json:"userId"`
	PaymentStatus *string `gorm:"column:paymentStatus;type:varchar(45)" json:"paymentStatus"`
	Signature *string `gorm:"column:signature;type:varchar(200)" json:"signature"`
	OrderID *string `gorm:"column:orderId;type:longtext" json:"orderId"`
	CashbackAmount *float64 `gorm:"column:cashback_amount;type:double" json:"cashback_amount"`
	CreatedAt *time.Time `gorm:"column:created_at" json:"created_at"`
	UpdatedAt *time.Time `gorm:"column:updated_at" json:"updated_at"`
	CreatedBy *uint `gorm:"column:createdBy" json:"createdBy"`
	ModifiedBy *uint `gorm:"column:modifiedBy" json:"modifiedBy"`
	// Relation
	User User `gorm:"foreignKey:UserID;references:ID" json:"user"`
}

func (Payment) TableName() string {
	return "payment"
}