package main

import (
	"github.com/gogf/gf/v2/frame/g"
	_ "link_homework/internal/packed"

	"github.com/gogf/gf/v2/os/gctx"

	_ "github.com/gogf/gf/contrib/drivers/mysql/v2"

	_ "github.com/gogf/gf/contrib/nosql/redis/v2"

	"link_homework/internal/cmd"

	_ "link_homework/internal/logic"
)

func main() {
	ctx := gctx.GetInitCtx()

	//启动日志
	g.Log().Info(ctx, "服务启动中")

	//检查数据库链接
	// 检查默认数据库链接
	db := g.DB()
	if err := db.PingMaster(); err != nil {
		g.Log().Fatal(ctx, "默认数据库链接失败,请检查数据库链接配置")
		return
	}
	g.Log().Info(ctx, "默认数据库链接成功")

	// 检查 CMS 数据库链接
	cmsDb := g.DB("cms")
	if err := cmsDb.PingMaster(); err != nil {
		g.Log().Fatal(ctx, "CMS 数据库链接失败,请检查数据库链接配置")
		return
	}
	g.Log().Info(ctx, "CMS 数据库链接成功")

	//启动主命令逻辑
	cmd.Main.Run(ctx)

	//服务启动完成日志
	g.Log().Info(ctx, "服务启动完成")
}