// ================================================================================
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
// You can delete these comments if you wish manually maintain this interface file.
// ================================================================================

package service

import (
	"context"
	"kami/internal/consts"
	"kami/internal/model"
	"kami/internal/model/entity"

	"github.com/gogf/gf/v2/database/gdb"
)

type (
	IOrderSummary interface {
		GetList(ctx context.Context, input model.OrderSummaryListInput) (total int, list []*model.OrderSummaryListOutput, err error)
		GetDailyStats(ctx context.Context, input *model.OrderSummaryDailyListInput) (total int, list []*model.OrderSummaryDailyListOutput, err error)
		SetBlockStatus(ctx context.Context, orderNo string, isBlock consts.RestrictStatus, tx gdb.TX) (err error)
		// GetOneById 返回指定id的数据
		GetOneById(ctx context.Context, merchantOrderId string) (data *entity.V1OrderInfo, err error)
		// GetOneByMerchantUid 返回指定uid的数据
		GetOneByMerchantUid(ctx context.Context, merchantUid string) (data *entity.V1OrderInfo, err error)
		GetOneByBankOrderId(ctx context.Context, bankOrderId string) (data *entity.V1OrderInfo, err error)
	}
)

var (
	localOrderSummary IOrderSummary
)

func OrderSummary() IOrderSummary {
	if localOrderSummary == nil {
		panic("implement not found for interface IOrderSummary, forgot register?")
	}
	return localOrderSummary
}

func RegisterOrderSummary(i IOrderSummary) {
	localOrderSummary = i
}
