package main

import (
	"context"
	"encoding/json"
	"fmt"
	"time"

	"github.com/pingcap-inc/clinic/pkg/ngm/statements/api"
	"github.com/pingcap-inc/clinic/pkg/ngm/statements/impl"
	"github.com/pingcap-inc/clinic/pkg/ngm/storage"
)

func main() {
	stores, err := storage.NewStorageFactory("")
	check(err)
	now := time.Now().Unix()
	q := impl.NewStatementImpl("prod", stores)
	res, err := q.List(context.Background(), &api.ListParam{
		Provider:     "alicloud",
		Region:       "ap-southeast-1",
		OrgID:        1372813089187041280,
		ProjectID:    1372813089187041280,
		ClusterID:    "10651326047252223753",
		SharedTier:   true,
		StartUnixSec: now - 3600,
		EndUnixSec:   now,
		Fields:       []string{"digest_text", "sum_latency", "avg_latency", "max_latency", "min_latency", "exec_count", "plan_count"},
		Schemas:      []string{},
		StmtTypes:    []string{},
		Text:         "",
	})
	check(err)
	b, err := json.Marshal(res)
	check(err)
	fmt.Println(string(b))
}

func check(err error) {
	if err != nil {
		panic(err)
	}
}
