package http_server

import (
	"fmt"

	"crm-api/internal/app/http_server/pbx"
	"crm-api/pkg/configs"
	"crm-api/pkg/lfshook"
	"syscall"

	"github.com/gin-contrib/gzip"
	"github.com/gin-gonic/gin"
)

func StartRoute() {
	// 创建路由
	router := gin.New()

	// pms 对应 =======================
	// auth.AddAuth()  // pms和crm分开

	// vtiger 对应 =======================
	// auth.VtigerAddAuth())  // 20250102 删除

	// zoho 对应 =======================
	// auth.ZohoAddAuth() // 20250102 删除

	// 配置中间件
	// 使用 logrus 自定义 logger, 可以统一写入日志文件
	// router.Use(gin.Logger())
	// router.Use(log.LogrusLog)

	router.Use(gzip.Gzip(gzip.DefaultCompression))
	router.Use(gin.Recovery())

	// pprof_info.Enable(router) // 20230419 pms 注释
	// router.Use(weblog.WebLogMiddleware()) // 20230419 pms 注释

	// 设置 static
	/* 20230419 pms 删除 =======================================================================================================
	socketio_client_tool.Enable(router)

		if configs.ConfigGlobal.AllowOrigin != "" {
			// web 页面需要
			router.Use(middleware.CORSMiddleware(configs.ConfigGlobal.AllowOrigin))
		} else {
			// panel 需要
			router.Use(middleware.CORSMiddleware("*"))
		}

		//API 路由
		home.AddRouter(router)
	* ========================================================================================================================= */

	//pbx 功能模块
	// static.Enable(router) // 20230411 pms 删除
	pbx.Enable(router)
	// webuser.Enable(router) // 20230419 pms 注释
	// bill.Enable(router) // 20230411 pms 删除
	// api.Enable(router) // 20230419 pms 注释

	addr := fmt.Sprintf("%s:%d", configs.ConfigGlobal.WebHost, configs.ConfigGlobal.WebPort)
	lfshook.NewLogger().Infof("http addr: %s", addr)
	err := router.Run(addr)
	if err != nil {
		lfshook.NewLogger().Error(err.Error())
		syscall.Kill(syscall.Getpid(), syscall.SIGINT)
	}
}
