package db

import (
	"gorm.io/driver/postgres"
	"gorm.io/gorm"
	"gorm.io/gorm/logger"
)

func NewDatabase(dsn string, MaxOpenConns, MaxIdleConns int) (*gorm.DB, error) {
	connect, err := gorm.Open(postgres.Open(dsn), &gorm.Config{
		Logger: logger.Default.LogMode(logger.Info),
	})
	if err != nil {
		return nil, err
	}
	db, err := connect.DB()
	if err != nil {
		return nil, err
	}
	db.SetMaxOpenConns(MaxOpenConns)
	db.SetMaxIdleConns(MaxIdleConns)
	return connect, nil
}

func Migration(db *gorm.DB, models []interface{}) {
	for _, m := range models {
		db.AutoMigrate(m)
	}
}
