// Code generated by gorm.io/gen. DO NOT EDIT.
// Code generated by gorm.io/gen. DO NOT EDIT.
// Code generated by gorm.io/gen. DO NOT EDIT.

package model

import (
	"time"
)

const TableNameWalletTransaction = "wallet_transactions"

// WalletTransaction mapped from table <wallet_transactions>
type WalletTransaction struct {
	ID         string     `gorm:"column:id;type:uuid;primaryKey" json:"id"`
	UserID     string     `gorm:"column:user_id;type:uuid;not null;index:idx_wallet_transactions_user_id,priority:1" json:"user_id"`
	Type       string     `gorm:"column:type;type:character varying(50);not null" json:"type"`
	Amount     float64    `gorm:"column:amount;type:numeric(65,30);not null" json:"amount"`
	Currency   *string    `gorm:"column:currency;type:text;not null;default:USD" json:"currency"`
	Note       *string    `gorm:"column:note;type:text" json:"note"`
	CreatedAt  *time.Time `gorm:"column:created_at;type:timestamp with time zone" json:"created_at"`
	UpdatedAt  *time.Time `gorm:"column:updated_at;type:timestamp with time zone" json:"updated_at"`
	PaymentID  *string    `gorm:"column:payment_id;type:uuid;index:idx_wallet_transactions_payment_id,priority:1" json:"payment_id"`
	PlanID     *string    `gorm:"column:plan_id;type:uuid;index:idx_wallet_transactions_plan_id,priority:1" json:"plan_id"`
	TermMonths *int32     `gorm:"column:term_months;type:integer" json:"term_months"`
	Version    *int64     `gorm:"column:version;type:bigint;not null;default:1;version" json:"-"`
}

// TableName WalletTransaction's table name
func (*WalletTransaction) TableName() string {
	return TableNameWalletTransaction
}
