package main

import (
	"gitee.ltd/lxh/wechat-robot/internal/initialize"
	"gitee.ltd/lxh/wechat-robot/internal/server"
	"gitee.ltd/lxh/wechat-robot/internal/tasks"
	"github.com/gofiber/fiber/v2/log"
	"os"
	"os/signal"
	"syscall"
)

func main() {
	// 初始化系统
	initialize.Init()

	// 创建HTTP服务器
	srv := server.New()

	// 设置路由
	srv.SetupRoutes()

	// 启动HTTP服务器
	go func() {
		if err := srv.Start(); err != nil {
			log.Errorf("Server error: %v", err)
		}
	}()

	log.Debug("服务器已成功启动")

	// 启动定时任务
	tasks.Start()

	// 优雅关闭
	quit := make(chan os.Signal, 1)
	signal.Notify(quit, os.Interrupt, syscall.SIGTERM)
	<-quit

	log.Warn("正在关闭...")
	// 关闭HTTP服务器
	if err := srv.Shutdown(); err != nil {
		log.Fatalf("服务器关闭失败: %v", err)
	}

	log.Warn("服务器已正确退出")
}
