package payment

import "time"

type StartPaymentRequest struct {
	PayWay    string `json:"pay_way"`
	JSPayFlag string `json:"jspay_flag"`
}

type WalletRechargePaymentRequest struct {
	Amount    float64 `json:"amount"`
	PayWay    string  `json:"pay_way"`
	JSPayFlag string  `json:"jspay_flag"`
}

type PaymentDTO struct {
	ID              uint64     `json:"id"`
	PaymentNo       string     `json:"payment_no"`
	OrderID         uint64     `json:"order_id"`
	OrderNo         string     `json:"order_no"`
	Provider        string     `json:"provider"`
	ThirdOrderID    string     `json:"third_order_id"`
	ProviderOrderID string     `json:"provider_order_id"`
	PayWay          string     `json:"pay_way"`
	JSPayFlag       string     `json:"jspay_flag"`
	AmountCent      int64      `json:"amount_cent"`
	Status          string     `json:"status"`
	TDCode          string     `json:"td_code,omitempty"`
	JSPayURL        string     `json:"jspay_url,omitempty"`
	JSPayInfo       string     `json:"jspay_info,omitempty"`
	Paid            bool       `json:"paid"`
	PaidAt          *time.Time `json:"paid_at,omitempty"`
	CreatedAt       time.Time  `json:"created_at"`
	UpdatedAt       time.Time  `json:"updated_at"`
}

type RefundDTO struct {
	ID              uint64     `json:"id"`
	PaymentNo       string     `json:"payment_no"`
	OrderID         uint64     `json:"order_id"`
	OrderNo         string     `json:"order_no"`
	BizType         string     `json:"biz_type"`
	AmountCent      int64      `json:"amount_cent"`
	Status          string     `json:"status"`
	ProviderOrderID string     `json:"provider_order_id,omitempty"`
	PaidAt          *time.Time `json:"paid_at,omitempty"`
	CreatedAt       time.Time  `json:"created_at"`
	UpdatedAt       time.Time  `json:"updated_at"`
}

type NotifyResult struct {
	OK      bool
	Message string
}
