package main

import (
	"mtp20_assisted/core"
	"mtp20_assisted/global"
	"mtp20_assisted/service"

	"go.uber.org/zap"
)

func main() {
	// 初始化Viper
	global.M2A_VP = core.Viper()

	// 初始化zap日志库
	global.M2A_LOG = core.Zap()
	zap.ReplaceGlobals(global.M2A_LOG)

	// xorm连接数据库
	global.M2A_DB = core.XormOracle()
	if global.M2A_DB != nil {
		// 程序结束前关闭数据库链接
		defer global.M2A_DB.DB().Close()
	} else {
		return
	}

	// 连接RabbitMQ
	global.M2A_RABBITMQ = core.RabbitMQ()
	if global.M2A_RABBITMQ != nil {
		defer global.M2A_RABBITMQ.Connection.Close()
	} else {
		return
	}
	// 构建总线信息处理器
	service.InitRabbitMQMsgPreccesser()
	// 开始向总线创建和绑定队列
	service.StartRabbitMQSubscribe()
	// 开始接收总线消息
	service.StartRabbitMQReceive()

	global.M2A_DONE = make(chan bool)
	<-global.M2A_DONE
}
