package database

import (
	"fmt"
	"os"
	"zatobay_api/models"

	//"gorm.io/driver/postgres"

	"github.com/joho/godotenv"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

var DB *gorm.DB

// USING POSTGRESS

// const POSTGRESQL = "postgres://fxnupcgzuzeech:49991d50ca1f1d27cb1891e8b3a7cfeaae917f7c8e32c7fcfc9e8b1f91a14e4b@ec2-3-219-63-251.compute-1.amazonaws.com:5432/d1rg9hhr5beok9"

func Connect() {

	godotenv.Load()
	db_host := os.Getenv("DB_HOST")
	db_name := os.Getenv("DB_NAME")
	db_user := os.Getenv("DB_USER")
	db_password := os.Getenv("DB_PASSWORD")
	db_port := os.Getenv("DB_PORT")

	// fmt.Println(db_user, db_password, db_host, db_port, db_name)

	// dsn_postgre := "postgres://fxnupcgzuzeech:49991d50ca1f1d27cb1891e8b3a7cfeaae917f7c8e32c7fcfc9e8b1f91a14e4b@ec2-3-219-63-251.compute-1.amazonaws.com:5432/d1rg9hhr5beok9"

	dsn_mysql := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?parseTime=True&loc=Local", db_user, db_password, db_host, db_port, db_name)

	// dsn_mysql_conn := "u5442203_zatobay_dev_user:)TE!&WG=ZXD9@tcp(srv46.niagahoster.com:3306)/u5442203_zatobay_dev?parseTime=True&loc=Local"

	// postgre
	// dsn_postgre := POSTGRESQL

	// mysql
	connection, err := gorm.Open(mysql.Open(dsn_mysql), &gorm.Config{})

	// postgre
	// connection, err := gorm.Open(postgres.Open(dsn_postgre), &gorm.Config{})

	if err != nil {
		panic("could not connect to the database")
	}

	DB = connection

	connection.AutoMigrate(&models.User{}, &models.Orders{}, &models.OrdersTicket{}, &models.Tickets{}, &models.Roles{}, &models.RolesDetails{}, &models.Schools{}, &models.Teacher{}, &models.Ban{}, &models.BanCategory{}, &models.OrdersBan{}, &models.OrdersBanDetail{}, &models.LokerCategory{}, &models.Loker{}, &models.OrderLoker{}, &models.OrderLokerDetail{}, &models.TarifParkir{}, &models.OrderParkir{})
}
