package pay

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"`
	// 交易号
	TradeNo string `bson:"tradeNo,omitempty" json:"tradeNo,omitempty"`
	// 退款理由
	Reason string `bson:"reason,omitempty" json:"reason,omitempty"`
	// 拒绝退款理由
	DeReason string `bson:"deReason,omitempty" json:"deReason,omitempty"`
	// 退款金额
	Amount *float64 `bson:"amount,omitempty" json:"amount,omitempty"`
	// 原金额
	Total *float64 `bson:"total,omitempty" json:"total,omitempty"`
	// 退款手续费用
	Fee *float64 `bson:"fee,omitempty" json:"fee,omitempty"`

	// 产品相关
	// 产品编码
	PointId     primitive.ObjectID `bson:"pointId,omitempty" json:"pointId,omitempty"`
	PointName   string             `bson:"pointName,omitempty" json:"pointName,omitempty"`
	PointPrice  *float64           `bson:"pointPrice,omitempty" json:"pointPrice,omitempty"`
	PointAmount *float64           `bson:"pointAmount,omitempty" json:"rpointAmount,omitempty"`
	// 退款数量
	Quantity *int32 `bson:"quantity,omitempty" json:"quantity,omitempty"`

	Status *int32 `bson:"status,omitempty" json:"status,omitempty"`
	// 支付模式：0支付宝 1微信
	PayMod     *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"`
}

type PayRefundReq struct {
	OrderId primitive.ObjectID `bson:"orderId,omitempty" json:"orderId,omitempty"`

	Reason string `bson:"reason,omitempty" json:"reason,omitempty"`
}

type RefundDisAgreeReq struct {
	Id primitive.ObjectID `bson:"_id,omitempty" json:"_id,omitempty"`

	DeReason string `bson:"deReason,omitempty" json:"deReason,omitempty"`
}
