package impl

import (
	"git.apinb.com/bsm-sdk/core/cache/redis"
	"git.apinb.com/bsm-sdk/core/logger"
	"git.apinb.com/bsm-sdk/core/with"
	"git.apinb.com/ops/sample/internal/config"
	"github.com/patrickmn/go-cache"
	"gorm.io/gorm"
)

var (
	RedisService  *redis.RedisClient // Redis 客户端服务
	DBService     *gorm.DB           // 数据库服务
	MemoryService *cache.Cache       // 内存缓存服务
	Logger        *logger.Logger
)

// NewImpl 初始化各类服务实例
func NewImpl() {
	// 初始化内存缓存
	MemoryService = with.Memory(nil)
	// 初始化 Redis 缓存
	RedisService = with.RedisCache(config.Spec.Cache)
	// 初始化数据库服务
	DBService = with.Databases(config.Spec.Databases, nil)
	// 初始化 日志服务
	logger.New(nil)
}
