<?php

class Conexao
{
    private static $connection;

    private function __construct(){}

    public static function getConnection() {

        $pdoConfig  = DB_DRIVER . ":". "Server=" . DB_HOST . ";";
        $pdoConfig .= "Database=".DB_NAME.";";

        try {
            if(!isset($connection)){
                $connection =  new PDO($pdoConfig, DB_USER, DB_PASSWORD);
                $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                
                //ajustar o tempo de conexao do sql server
                $connection->setAttribute(PDO::SQLSRV_ATTR_QUERY_TIMEOUT, 1200); // 20 minutos
                
            }
            return $connection;
         } catch (PDOException $e) {
            $mensagem = "Drivers disponiveis: " . implode(",", PDO::getAvailableDrivers());
            $mensagem .= "\nErro: " . $e->getMessage();
            throw new Exception($mensagem);
         }
     }
}

//define('DB_HOST'        , "DESKTOP-JNN3B4I\SQLEXPRESS");
define('DB_HOST'        , "192.168.1.248,5433");
//define('DB_HOST'        , "casadocabeleireirosrv.ddns.net,5433");

define('DB_USER'        , "sa");

//define('DB_PASSWORD'    , "123456");
define('DB_PASSWORD'    , "Sfc@14828");


//se estivermos tentando navegar entre os banco do nosso servidor
if(isset($banco)) {

    //banco padrao da loja
    if($banco == 'atual'){

        define('DB_NAME'        , "BaseCasadoCabelereiro");
    
    //escolheu usar ou pesquiquisar em outro banco
    }elseif($banco == 'antigo'){    

        define('DB_NAME'        , "BaseCasadoCabelereiro_2023");
    }


//se nao esta tentando navegar entre banco esta apenas acessando o banco padrao do sistema
}else{

define('DB_NAME'        , "BaseCasadoCabelereiro");
}

define('DB_DRIVER'      , "sqlsrv");