<?php
class Database {
    private $host = "localhost";
    private $db_name = "iosco_bank";
    private $username = "root";
    private $password = ""; 
    public $conn;

    // Централизованное подключение с обработкой ошибок
    public function getConnection() {
        $this->conn = null;
        try {
            // Подключение PDO с защитой и правильной кодировкой
            $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name . ";charset=utf8mb4", $this->username, $this->password);
            
            // Настройка атрибутов для строгой типизации ошибок и защиты от SQL инъекций
            $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
            $this->conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
            
        } catch(PDOException $exception) {
            // В реальном проекте здесь будет логирование в файл (error_log)
            http_response_code(500);
            echo json_encode([
                "error" => true,
                "message" => "Database connection failed: " . $exception->getMessage()
            ]);
            exit;
        }
        return $this->conn;
    }
}
?>
