<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// Config - Database & Application Settings
define('DB_HOST', 'localhost');
define('DB_USER', 'u69319090041');
//define('DB_USER', 'root');
define('DB_PASS', '@6941');
//define('DB_PASS', '');
define('DB_NAME', 'shop69319090041');
//define('DB_NAME', 'shop9_db');
define('DB_CHARSET', 'utf8');

define('SITE_NAME', '41SHOP');
define('SITE_URL', 'https://webapp69.cm.in.th/u69319090041/Shop41/public');
//define('SITE_URL', 'http://localhost/shop9/public');
define('UPLOAD_DIR', __DIR__ . '/../public/uploads/');
define('UPLOAD_URL', SITE_URL . '/uploads/');

// Image Compression defaults
define('MAX_IMAGE_WIDTH', 1200);
define('JPEG_QUALITY', 80);
define('THUMB_WIDTH', 400);

// Session Start
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

// Database Connection Helper
if (!function_exists('getDBConnection')) {
    function getDBConnection() {
        static $pdo = null;
        if ($pdo === null) {
            $host    = defined('DB_HOST') ? DB_HOST : 'localhost';
            $dbName  = defined('DB_NAME') ? DB_NAME : '';
            $charset = defined('DB_CHARSET') ? DB_CHARSET : 'utf8';
            $user    = defined('DB_USER') ? DB_USER : '';
            $pass    = defined('DB_PASS') ? DB_PASS : '';

            $dsn = "mysql:host=" . $host . ";dbname=" . $dbName . ";charset=" . $charset;
            $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 " . $charset
            ];
            try {
                $pdo = new PDO($dsn, $user, $pass, $options);
                $pdo->exec("SET NAMES " . $charset);
            } catch (PDOException $e) {
                error_log("DB Connection Error: " . $e->getMessage());
                http_response_code(500);
                die("<h2>เกิดข้อผิดพลาด: ไม่สามารถเชื่อมต่อฐานข้อมูลได้</h2><p>กรุณาตรวจสอบการตั้งค่า DB_HOST, DB_USER, DB_PASS, DB_NAME ใน config.php และลองใหม่อีกครั้ง</p><p>รายละเอียด: " . htmlspecialchars($e->getMessage()) . "</p>");
            }
        }
        return $pdo;
    }
}
