package dto

import (
	"time"

	"quyun/v2/app/requests"
	"quyun/v2/database/models"
	"quyun/v2/pkg/consts"
)

// MyLedgerListFilter 定义“我的余额流水”查询条件。
type MyLedgerListFilter struct {
	// Pagination 分页参数（page/limit）。
	requests.Pagination `json:",inline" query:",inline"`
	// Type 按流水类型过滤（可选）。
	Type *consts.TenantLedgerType `json:"type,omitempty" query:"type"`
	// OrderID 按关联订单过滤（可选）。
	OrderID *int64 `json:"order_id,omitempty" query:"order_id"`
	// CreatedAtFrom 创建时间起（可选）。
	CreatedAtFrom *time.Time `json:"created_at_from,omitempty" query:"created_at_from"`
	// CreatedAtTo 创建时间止（可选）。
	CreatedAtTo *time.Time `json:"created_at_to,omitempty" query:"created_at_to"`
}

// MyLedgerItem 返回一条余额流水，并补充展示字段。
type MyLedgerItem struct {
	// Ledger 流水记录（租户内隔离）。
	Ledger *models.TenantLedger `json:"ledger"`
	// TypeDescription 流水类型中文说明（用于前端展示）。
	TypeDescription string `json:"type_description"`
}
