package dto

import "quyun/v2/pkg/consts"

type UserUpdate struct {
	Nickname string        `json:"nickname"`
	Avatar   string        `json:"avatar"`
	Gender   consts.Gender `json:"gender"`
	Bio      string        `json:"bio"`
	Birthday string        `json:"birthday"`
	Location *Location     `json:"location"`
}

type RealNameForm struct {
	Realname string `json:"realname"`
	IDCard   string `json:"id_card"`
}

type WalletResponse struct {
	Balance      float64       `json:"balance"`
	Transactions []Transaction `json:"transactions"`
}

type Transaction struct {
	ID     string  `json:"id"`
	Title  string  `json:"title"`
	Amount float64 `json:"amount"`
	Type   string  `json:"type"` // income, expense
	Date   string  `json:"date"`
}

type RechargeForm struct {
	Amount float64 `json:"amount"`
	Method string  `json:"method"` // wechat, alipay
}

type RechargeResponse struct {
	PayParams string `json:"pay_params"`
	OrderID   string `json:"order_id"`
}

type Order struct {
	ID                string        `json:"id"`
	Type              string        `json:"type"` // consts.OrderType...
	TypeDescription   string        `json:"type_description"`
	CreateTime        string        `json:"create_time"`
	PayTime           string        `json:"pay_time"`
	Status            string        `json:"status"`
	StatusDescription string        `json:"status_description"`
	Amount            float64       `json:"amount"`
	Quantity          int           `json:"quantity"`
	Items             []ContentItem `json:"items"`
	TenantID          string        `json:"tenant_id"`
	TenantName        string        `json:"tenant_name"`
	IsVirtual         bool          `json:"is_virtual"`
}

type Notification struct {
	ID      string `json:"id"`
	Type    string `json:"type"`
	Title   string `json:"title"`
	Content string `json:"content"`
	Read    bool   `json:"read"`
	Time    string `json:"time"`
}
