package model

import (
	v1 "kami/api/sys_payment/v1"
	"kami/internal/consts"

	"github.com/shopspring/decimal"
)

type SysUserPaymentRecordInput struct {
	OrderNo         string                            `json:"orderNo" description:"订单号"`
	UserId          string                            `json:"userId" description:"用户ID"`
	PaymentId       int                               `json:"paymentId" description:"支付ID"`
	Amount          decimal.Decimal                   `json:"amount" description:"金额"`
	Notes           string                            `json:"notes" description:"备注"`
	TransactionType consts.UserPaymentTransactionType `json:"transactionType" description:"交易类型"`
	Category        consts.CardRedeemAccountCategory  `json:"category" dc:"充值分类"`
}

type SysUserRecordListInput struct {
	v1.SysPaymentRecordsGetReq
}

type SysUserRecord struct {
	v1.PaymentSummaryRecord
}

type SysUserPaymentDailySummaryInput struct {
	*v1.PaymentSummaryListReq
}

type SysUserPaymentInput struct {
	UserId string `json:"userId" description:"用户ID"`
}

type SysUserPaymentListInput struct {
	v1.SysPaymentGetReq
}

type SysUserPaymentGetOneInput struct {
	UserId    string `p:"userId" description:"用户ID"`
	PaymentId int    `p:"paymentId" description:"钱包ID"`
}

type SysUserPaymentDeleteInput struct {
	UserId string `json:"userId" description:"用户ID"`
}

type SysUserPaymentRechargeOrConsumeInput struct {
	UserId          string                            `json:"userId" description:"用户ID"`
	OrderNo         string                            `json:"orderNo" description:"订单号"`
	Amount          decimal.Decimal                   `json:"amount" description:"充值或消费金额"`
	Remark          string                            `json:"remark" description:"备注"`
	TransactionType consts.UserPaymentTransactionType `json:"recordType" description:"记录类型"`
	Category        consts.CardRedeemAccountCategory  `json:"category" dc:"充值分类"`
}

type SysUserPaymentCheckBalanceInput struct {
	UserId    string          `json:"userId" description:"用户ID"`
	PaymentId int             `json:"paymentId" description:"支付ID"`
	Amount    decimal.Decimal `json:"amount" description:"充值金额"`
}
