package services

import (
	"sync"

	"gorm.io/gorm"

	"fafa-crawler/src/dbutil"
	"fafa-crawler/src/mapper"
)

var (
	once   sync.Once
	dbGorm *gorm.DB
	ormQ   *mapper.Query

	// 服务实例
	productService *ProductService
	sxGoodsService *SxGoodsService
)

func init() {
	once.Do(func() {
		// 初始化数据库连接
		if dbGorm == nil {
			dbutil.InitMySQLDB()
			dbGorm = dbutil.MySQLDB
		}

		// 初始化 gorm 的 mapper
		mapper.SetDefault(dbGorm)
		ormQ = mapper.Use(dbGorm)

		// 确保数据库连接不为nil
		if dbGorm == nil {
			panic("数据库连接未初始化")
		}

		// 初始化所有服务实例
		productService = &ProductService{db: dbGorm}
		sxGoodsService = &SxGoodsService{db: dbGorm}
	})
}
