// Models generated by mesh dev cli,@Author: David Yan(david.yan@qq.com).
package models

import (
	"git.apinb.com/bsm-sdk/core/database"
	"git.apinb.com/bsm-sdk/core/types"
	"gorm.io/gorm"
)

/*
 * WalletRecord
 * Comment:
 * Version: 10
 * Created: 2022-04-14 22:20:44 , Updated:0001-01-01 00:00:00
 */
type WalletRecord struct {
	gorm.Model
	types.Std_Identity
	types.Std_Passport
	WalletIdentity string `gorm:"column:wallet_identity;type:varchar(36);not null;" json:"wallet_identity"` // 钱包唯一标识串
	TransType      int8   `gorm:"column:trans_type;default:0;Index;" json:"trans_type"`                     // 收支类型，-1：支出，1：收入
	InTradeNo      string `gorm:"column:in_trade_no;type:varchar(50);not null;" json:"in_trade_no"`         // 内部交易流水号
	OutTradeNo     string `gorm:"column:out_trade_no;type:varchar(50);default:'';" json:"out_trade_no"`     // 外部交易流水号，示例：微信、支付宝、银行卡等
	Money          int64  `gorm:"column:money; unsigned;default:0;" json:"money"`                           // 交易金额，单位：分
	Fee            int64  `gorm:"column:fee; unsigned;default:0;" json:"fee"`                               // 交易手续费，单位：分
	PayChannel     int8   `gorm:"column:pay_channel;default:0;" json:"pay_channel"`                         // 方式 1:微信 2:支付宝 3:银行卡
	PayType        string `gorm:"column:pay_type;type:varchar(255);not null;" json:"pay_type"`              // 支付类型 JSAPI:微信浏览器内支付 APP:app支付  MINI:小程序  NATIVE:Native支付,pc端生成二维码供用户扫码支付,QUICK_MSECURITY_PAY:app支付 QUICK_WAP_WAY:手机网站支付 FAST_INSTANT_TRADE_PAY:pc网站支付
	TradeType      int8   `gorm:"column:trade_type;default:0;" json:"trade_type"`                           // 交易类型，1：充值，2：提现，3：消费，4：退款，5：收益
	Ymd            int32  `gorm:"column:ymd;Index;not null;" json:"ymd"`                                    // 索引：年月日
	Ym             int32  `gorm:"column:ym;Index;not null;" json:"ym"`                                      // 索引：年月
	Remark         string `gorm:"column:remark;type:varchar(255);default:'';" json:"remark"`                // 交易备注
}

func init() {
	database.AppendMigrate(&WalletRecord{})
}

// TableName .
func (table *WalletRecord) TableName() string {
	return "wallet_record" //对应数据库表名
}
