<?php
/**
 * Genel Ayar Dosyası
 */

// Site ayarları
define('SITE_NAME', 'Kayak Firmaları');

// Site URL'ini otomatik algıla (SSL/HTTPS desteği ile)
// Manuel ayarlama için aşağıdaki satırı açıp domain'inizi yazabilirsiniz:
// define('SITE_URL', 'https://kayakfirmalari.com.tr');

if (!defined('SITE_URL')) {
    // Önce veritabanı bağlantısını kontrol et (ayarları yüklemek için)
    $ssl_enabled = false;
    $site_domain = '';

    // Veritabanı bağlantısı varsa ayarları yükle
    // Not: database.php daha sonra tekrar include edilecek, bu yüzden sadece mevcut bağlantıyı kontrol et
    try {
        if (isset($pdo) && is_object($pdo)) {
            try {
                $stmt = $pdo->query("SELECT setting_key, setting_value FROM settings WHERE setting_key IN ('ssl_enabled', 'site_domain')");
                while ($row = $stmt->fetch()) {
                    if ($row['setting_key'] === 'ssl_enabled') {
                        $ssl_enabled = ($row['setting_value'] == '1');
                    } elseif ($row['setting_key'] === 'site_domain') {
                        $site_domain = trim($row['setting_value']);
                    }
                }
            } catch (PDOException $e) {
                // Settings tablosu yoksa veya hata varsa devam et
            }
        }
    } catch (Exception $e) {
        // Veritabanı bağlantısı yoksa veya hata varsa devam et
    }

    // Protocol belirleme (SSL ayarı varsa ve aktifse HTTPS zorla)
    if ($ssl_enabled) {
        $protocol = "https://";
    } else {
        $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
    }

    // Host belirleme (domain ayarı varsa kullan, yoksa otomatik algıla)
    if (!empty($site_domain)) {
        $host = $site_domain;
    } else {
        $host = $_SERVER['HTTP_HOST'] ?? 'localhost';
    }

    // Base path'i belirle
    $scriptName = $_SERVER['SCRIPT_NAME'] ?? '/index.php';
    $basePath = '';

    // Script'in bulunduğu dizini al
    if (strpos($scriptName, '/admin38/') !== false) {
        $basePath = dirname(dirname($scriptName));
    } elseif (strpos($scriptName, '/company/') !== false) {
        $basePath = dirname(dirname($scriptName));
    } elseif (strpos($scriptName, '/config/') !== false) {
        $basePath = dirname(dirname($scriptName));
    } elseif ($scriptName !== '/index.php') {
        $basePath = dirname($scriptName);
    }

    // Windows için backslash'leri slash'a çevir
    $basePath = str_replace('\\', '/', $basePath);
    $basePath = trim($basePath, '/');

    // Admin klasöründeysek base path'ten admin'i çıkar
    // Bu sayede SITE_URL her zaman ana dizini gösterir
    if (substr($basePath, -8) === '/admin38') {
        $basePath = substr($basePath, 0, -8);
    } elseif ($basePath === 'admin38') {
        $basePath = '';
    }

    // Root'ta ise boş bırak
    if ($basePath === '.' || $basePath === '/' || empty($basePath)) {
        $basePath = '';
    } else {
        $basePath = '/' . trim($basePath, '/');
    }

    // SITE_URL'yi oluştur
    define('SITE_URL', $protocol . $host . $basePath);
}

define('SITE_EMAIL', 'info@kayakfirmalari.com');

// Yol tanımlamaları
define('ROOT_PATH', dirname(__DIR__));
define('ADMIN_PATH', ROOT_PATH . '/admin38');
define('COMPANY_PATH', ROOT_PATH . '/company');
define('UPLOAD_PATH', ROOT_PATH . '/uploads');
define('ASSETS_PATH', ROOT_PATH . '/assets');

// URL yolları
define('ADMIN_URL', SITE_URL . '/admin38');
define('COMPANY_URL', SITE_URL . '/company');
define('UPLOAD_URL', SITE_URL . '/uploads');
define('ASSETS_URL', SITE_URL . '/assets');

// Dosya yükleme ayarları
define('MAX_FILE_SIZE', 5 * 1024 * 1024); // 5MB
define('ALLOWED_IMAGE_TYPES', ['image/jpeg', 'image/png', 'image/gif', 'image/webp']);
define('MAX_COMPANY_IMAGES', 10);
define('MAX_SERVICES', 5);

// Üyelik tipleri
define('MEMBERSHIP_FREE', 'free');
define('MEMBERSHIP_PAID', 'paid');

// Zaman dilimi
date_default_timezone_set('Europe/Istanbul');

// Debug modu (production'da false yapın)
define('DEBUG', false); // Hosting'de false olmalı

// Session başlat (SSL için güvenli cookie ayarları)
if (session_status() === PHP_SESSION_NONE) {
    // SSL aktifse güvenli cookie ayarları
    if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) {
        ini_set('session.cookie_secure', 1);
    }
    ini_set('session.cookie_httponly', 1);
    ini_set('session.cookie_samesite', 'Strict');
    session_start();
}

// Veritabanı bağlantısını dahil et
require_once ROOT_PATH . '/config/database.php';

// Ortak fonksiyonları dahil et
require_once ROOT_PATH . '/includes/functions.php';

