package impl

import (
	"bsm/full/module/base/mgt/internal/models"
	"git.apinb.com/bsm-sdk/core/conf"
	"git.apinb.com/bsm-sdk/core/printer"
	coreTypes "git.apinb.com/bsm-sdk/core/types"
	"git.apinb.com/bsm-sdk/core/vars"
)

func WithDatabases(cfg *conf.DBConf, opts *coreTypes.SqlOptions) {
	if cfg == nil || len(cfg.Source) == 0 {
		panic("No Database Source Found !")
	}

	// print inform.
	printer.Info("[BSM - %s] Databases: %v", vars.ServiceKey, cfg)

	err := models.New(cfg.Driver, cfg.Source, opts)
	if err != nil {
		printer.Error("Database Init Failed !")
		panic(err)
	}
	return
}
