package main

import (
	"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"
	bundleConfig "micro-bundle/config"
	"micro-bundle/internal/controller"
	_ "micro-bundle/internal/handler"
	"micro-bundle/pkg/app"
	"micro-bundle/pkg/tracing"
)

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 {}
}