<?php
/**
 * Production Database Configuration
 * إعدادات قاعدة البيانات للاستضافة
 * 
 * استخدم هذا الملف على الاستضافة
 * وأعد تسمية database.php إلى database.local.php
 * ثم أعد تسمية هذا الملف إلى database.php
 */

class Database {
    // Production Database Settings
    private $host = 'localhost';
    private $db_name = 'u884608576_rozskin';
    private $username = 'u884608576_rozskin';
    private $password = 'Rozskin@ahmad123';
    private $port = 3306;
    private $conn;

    public function __construct() {
        // يمكن استخدام متغيرات البيئة إذا كانت متاحة
        if (getenv('DB_HOST')) {
            $this->host = getenv('DB_HOST');
        }
        if (getenv('DB_NAME')) {
            $this->db_name = getenv('DB_NAME');
        }
        if (getenv('DB_USER')) {
            $this->username = getenv('DB_USER');
        }
        if (getenv('DB_PASS')) {
            $this->password = getenv('DB_PASS');
        }
        if (getenv('DB_PORT')) {
            $this->port = getenv('DB_PORT');
        }
    }

    public function getConnection() {
        $this->conn = null;

        try {
            $dsn = "mysql:host=" . $this->host . ";port=" . $this->port . ";dbname=" . $this->db_name . ";charset=utf8mb4";
            
            $options = [
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
                PDO::ATTR_EMULATE_PREPARES => false,
                PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"
            ];
            
            $this->conn = new PDO($dsn, $this->username, $this->password, $options);
            
        } catch(PDOException $exception) {
            // في الإنتاج، لا نعرض تفاصيل الخطأ للمستخدم
            error_log("Database Connection Error: " . $exception->getMessage());
            
            // يمكن إرسال إشعار للمطور
            // mail('admin@yourdomain.com', 'DB Error', $exception->getMessage());
            
            // عرض رسالة عامة للمستخدم
            die("عذراً، حدث خطأ في الاتصال بقاعدة البيانات. يرجى المحاولة لاحقاً.");
        }

        return $this->conn;
    }
    
    /**
     * Test database connection
     * اختبار الاتصال بقاعدة البيانات
     */
    public function testConnection() {
        try {
            $conn = $this->getConnection();
            if ($conn) {
                return [
                    'success' => true,
                    'message' => 'تم الاتصال بقاعدة البيانات بنجاح',
                    'host' => $this->host,
                    'database' => $this->db_name
                ];
            }
        } catch (Exception $e) {
            return [
                'success' => false,
                'message' => 'فشل الاتصال بقاعدة البيانات',
                'error' => $e->getMessage()
            ];
        }
    }
}
?>
