package global

import (
	"go.uber.org/zap"
	"io"

	"github.com/go-redis/redis/v8"
)

type InitConfig struct {
	//InitDBFunc    func() *gorm.DB
	InitRedisFunc func() *redis.Client
}

var Init = new(InitConfig)

type Application struct {
	//配置

	//数据库
	//DB *utils.WtDB

	Redis *redis.Client
	//Cron      *cron.Cron
	//Machinery *machinery.Server

	//日志
	Log       *zap.SugaredLogger
	LogWriter io.Writer

	PwdPath string
}

var (
	// DB     *utils.WtDB
	// Redis  *redis.Client
	Log *zap.SugaredLogger
)

var App = new(Application)

func InitFacade() {
	// DB = App.DB
	// Redis = App.Redis
	Log = App.Log
}

//func DB() *utils.WtDB {
//	if App.DB != nil {
//		return App.DB
//	}
//
//	App.DB = &utils.WtDB{DB: Init.InitDBFunc()}
//	return App.DB
//}

func Redis() *redis.Client {
	if App.Redis != nil {
		return App.Redis
	}

	App.Redis = Init.InitRedisFunc()
	return App.Redis
}
