<?php
/*
 * Класс для работы с базой данных
 * @package freecms
 */

namespace freecms\classes;

/**
 * Используем класс PDO для подключения к БД
 */

use freecms;
use freecms\components\Dictionary;
use freecms\enums\DBDriversEnum;
use PDO;
use const freecms\FCMS_DB_DRIVER;
use const freecms\FCMS_DBNAME;
use const freecms\FCMS_DBUSERNAME;
use const freecms\FCMS_DBUSERPASSWORD;

/**
 * Класс для работы с базой данных
 */
class FcmsDB
{
    /**
     * @var PDO Переменная, хранящая класс PDO.
     */
    private PDO $pdo;

    /**
     * Конструктор. Подключает базу данных
     * @param DBDriversEnum $dbType Тип базы данных
     * @param string $connectionString Строка подключения к базе данных
     * @param string $userName Имя пользователя базы данных
     * @param string $userPassword Пароль к базе данных
     */
    public function __construct()
    {
        $type = match (FCMS_DB_DRIVER) {
            DBDriversEnum::MSSQL => 'sqlsrv',
            DBDriversEnum::PostgreSQL => 'pgsql',
            DBDriversEnum::OracleDB => 'oci',
            DBDriversEnum::SQLite => 'sqlite',
            default => 'mysql',
        };
        $this->pdo = new PDO($type . ':' . FCMS_DBNAME, FCMS_DBUSERNAME, FCMS_DBUSERPASSWORD);
    }

    public function select(string $query, Dictionary $variables)
    {

    }
}
