package model

import (
	"time"

	"go.mongodb.org/mongo-driver/bson/primitive"
)

type ReFund struct {
	Id         *primitive.ObjectID `bson:"_id,omitempty" json:"_id,omitempty"`
	UserId     *primitive.ObjectID `bson:"userId,omitempty" json:"userId,omitempty"`
	MerchantId *primitive.ObjectID `bson:"merchantId,omitempty" json:"merchantId,omitempty"`
	ShopId     *primitive.ObjectID `bson:"shopId,omitempty" json:"shopId,omitempty"`

	// 商户来源 um sku3d
	SellerKey string `bson:"sellerKey,omitempty" json:"sellerKey,omitempty"`

	// 交易号
	TradeNo string `bson:"tradeNo,omitempty" json:"tradeNo,omitempty"`
	// 退款理由
	Reason string `bson:"reason,omitempty" json:"reason,omitempty"`
	// 退款金额
	Refund *int32 `bson:"refund,omitempty" json:"refund,omitempty"`
	// 原金额
	Total *int32 `bson:"total,omitempty" json:"total,omitempty"`
	// 退款手续费用
	RefundFee *int32 `bson:"refundFee,omitempty" json:"refundFee,omitempty"`

	// 产品相关
	// 产品编码
	ProductId    *primitive.ObjectID `bson:"productId,omitempty" json:"productId,omitempty"`
	ProductName  string              `bson:"productName,omitempty" json:"productName,omitempty"`
	ProductPrice *int32              `bson:"productPrice,omitempty" json:"productPrice,omitempty"`
	RefundAmount *int32              `bson:"refundAmount,omitempty" json:"refundAmount,omitempty"`
	// 退款数量
	RefundQuantity *int32 `bson:"refundQuantity,omitempty" json:"refundQuantity,omitempty"`

	// REFUND_PROCESSING = iota // 0 退款处理中
	// REFUND_SUCCESS           // 1 退款成功
	// REFUND_CLOSED            // 2 退款关闭
	// REFUND_ABNORMAL          // 3 退款异常
	Status *int32 `bson:"status,omitempty" json:"status,omitempty"`
	// 支付模式：0支付宝 1微信
	PayMode    *int32    `bson:"payMode,omitempty" json:"payMode,omitempty"`
	CreateTime time.Time `bson:"createTime,omitempty" json:"createTime,omitempty"`
	UpdateTime time.Time `bson:"updateTime,omitempty" json:"updateTime,omitempty"`
}
