package main

import (
	bundleConfig "micro-bundle/config"
	"micro-bundle/internal/controller"
	_ "micro-bundle/internal/handler"
	"micro-bundle/pkg/app"
	"micro-bundle/pkg/tracing"

	"dubbo.apache.org/dubbo-go/v3/config"
	_ "dubbo.apache.org/dubbo-go/v3/filter/tps/strategy"
	_ "dubbo.apache.org/dubbo-go/v3/imports"
	"github.com/bwmarrin/snowflake"
	"go.uber.org/zap"
	"gorm.io/gorm"
)

func NewApp(Lg *zap.Logger, JaegerTracer *tracing.JaegerProvider, SfNode *snowflake.Node, BundleDB *gorm.DB) *app.App {
	return &app.App{
		Lg:           Lg,
		JaegerTracer: JaegerTracer,
		SfNode:       SfNode,
		BundleDB:     BundleDB,
	}
}

func main() {
	var err error
	bundleConfig.GetOptions()
	app.ModuleClients, err = InitApp()
	if err != nil {
		panic(err)
	}
	//l, err := net.Listen("tcp", ":8883")
	//if err != nil {
	//	fmt.Printf("failed to listen: %v", err)
	//	return
	//}

	//s := grpc.NewServer()                               // 创建gRPC服务器
	//dci.RegisterDciServer(s, &controller.DciProvider{}) // 在gRPC服务端注册服务
	// 启动服务
	//err = s.Serve(l)
	//注册服务
	config.SetProviderService(&controller.BundleProvider{})
	if err = config.Load(); err != nil {
		panic(err)
	}
	select {}
	// dao.AddBundleExtendRecord(model.BundleExtensionRecords{
	// 	UserId:                      57,
	// 	OperatorId:                  87,
	// 	AccountAdditional:           1,
	// 	VideoAdditional:             1,
	// 	AvailableDurationAdditional: 1,
	// 	ImagesAdditional:            1,
	// 	DataAdditional:              1,
	// 	AssociatedOrderNumber:       "asda",
	// 	Type:                        1,
	// 	Remark:                      "test",
	// 	CreatedAt:                   time.Now(),
	// })
}