package model

import (
	"bom_server/configs"
	"fmt"
	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/mysql"
	"time"
)

var Db *gorm.DB

// Setup initializes the database instance
func Setup() {
	var err error
	Db, err = gorm.Open(configs.DatabaseSetting.Type, fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8&parseTime=True&loc=Local",
		configs.DatabaseSetting.UserName,
		configs.DatabaseSetting.Password,
		configs.DatabaseSetting.Host,
		configs.DatabaseSetting.Database))

	if err != nil {
		panic(fmt.Sprintf("链接数据库失败 : %v", err))
	}

	gorm.DefaultTableNameHandler = func(Db *gorm.DB, defaultTableName string) string {
		return configs.DatabaseSetting.TablePrefix + defaultTableName
	}

	Db.SingularTable(true)
	//Db.LogMode(true)
	Db.DB().SetMaxIdleConns(10)
	Db.DB().SetMaxOpenConns(100)
	Db.DB().SetConnMaxLifetime(10 * time.Second)
}