package database

import (
	"context"
	"database/sql"
	"os"

	_ "github.com/go-sql-driver/mysql"
	log "github.com/rs/zerolog/log"
)

func Connect() (*sql.Tx, context.Context, *sql.DB) {

	/*os.Setenv("USER", "cfwebbetadb_usr")
	os.Setenv("CRE", "DNuB3Ghv1lXUA9z")
	os.Setenv("HOST", "creditfair-dev-mysqlrds-rds.caqddmvgrgu9.ap-south-1.rds.amazonaws.com")
	os.Setenv("DB", "creditcapital")*/

	os.Setenv("USER", "prod_cfwebbetadb_usr")
	os.Setenv("CRE", "uE24fg9K01aI")
	os.Setenv("HOST", "cfc-prod-mysql-rds-rds.cwdartkmuouo.ap-south-1.rds.amazonaws.com")
	os.Setenv("DB", "creditcapital")

	/*os.Setenv("USER", "cfwebbetaroot")
	os.Setenv("CRE", "sdh#HDJ87687#JSHBDJ$Bds")
	os.Setenv("HOST", "cfwebbeta.cyc1x9kcl7ju.ap-south-1.rds.amazonaws.com")
	os.Setenv("DB", "creditcapital")*/

	conn := os.Getenv("USER") + ":" + os.Getenv("CRE") + "@tcp(" + os.Getenv("HOST") + ":3306)/" + os.Getenv("DB")

	db, err := sql.Open("mysql", conn)

	ctx := context.Background()
	tx, err := db.BeginTx(ctx, nil)
	if err != nil {
		log.Print("mysql connection error")
		log.Fatal().Err(err).Msg(err.Error())
	}
	return tx, ctx, db
}

func Close(tx *sql.Tx, db *sql.DB) {
	err := tx.Commit()
	defer db.Close()
	if err != nil {
		log.Fatal().Err(err).Msg(err.Error())
	}
}
