<?php
/**
 * Plaka Yorum - Ana Konfigürasyon Dosyası
 */

// Hata raporlama (canlıda kapatılmalı)
error_reporting(E_ALL);
ini_set('display_errors', 0);
ini_set('log_errors', 1);

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

// ============================================
// VERİTABANI
// ============================================
define('DB_HOST', 'localhost');
define('DB_NAME', 'plakayorum_db');
define('DB_USER', 'plakayorum_db');
define('DB_PASS', '14325789Mk*');
define('DB_CHARSET', 'utf8mb4');

// ============================================
// UYGULAMA
// ============================================
define('APP_NAME', 'Plaka Yorum');
define('APP_URL', 'https://plakayorum.com');
define('API_URL', APP_URL . '/api');
define('UPLOAD_DIR', __DIR__ . '/uploads/');
define('UPLOAD_URL', APP_URL . '/uploads/');
define('MAX_UPLOAD_SIZE', 50 * 1024 * 1024); // 50MB

// ============================================
// JWT
// ============================================
define('JWT_SECRET', 'plakayorum_jwt_secret_key_2026_secure_random');
define('JWT_EXPIRY', 60 * 60 * 24 * 30); // 30 gün

// ============================================
// OTP
// ============================================
define('OTP_LENGTH', 6);
define('OTP_EXPIRY_MINUTES', 5);
define('OTP_MAX_ATTEMPTS', 5);
define('OTP_RESEND_COOLDOWN', 60); // saniye

// ============================================
// VERİMOR SMS API
// ============================================
define('VERIMOR_USERNAME', '908503351432');
define('VERIMOR_API_KEY', 'SLX*745nfp');
define('VERIMOR_SENDER', '08503351432');
define('VERIMOR_API_URL', 'https://sms.verimor.com.tr/v2/send.json');

// ============================================
// SMTP E-POSTA
// ============================================
define('SMTP_HOST', 'mail.plakayorum.com');
define('SMTP_PORT', 587);
define('SMTP_USER', 'noreply@plakayorum.com');
define('SMTP_PASS', '14325789Mk*');
define('SMTP_FROM_NAME', 'Plaka Yorum');
define('SMTP_FROM_EMAIL', 'noreply@plakayorum.com');

// ============================================
// FCM PUSH BİLDİRİM
// ============================================
define('FCM_SERVER_KEY', ''); // Firebase Console'dan alınacak

// ============================================
// VERİTABANI BAĞLANTISI
// ============================================
function getDB(): PDO {
    static $pdo = null;
    if ($pdo === null) {
        try {
            $dsn = 'mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';charset=' . DB_CHARSET;
            $pdo = new PDO($dsn, DB_USER, DB_PASS, [
                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"
            ]);
        } catch (PDOException $e) {
            http_response_code(500);
            echo json_encode(['success' => false, 'message' => 'Veritabanı bağlantı hatası']);
            exit;
        }
    }
    return $pdo;
}

// ============================================
// CORS & HEADERS
// ============================================
function setCorsHeaders(): void {
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
    header('Access-Control-Allow-Headers: Content-Type, Authorization');
    header('Content-Type: application/json; charset=utf-8');
    
    if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
        http_response_code(200);
        exit;
    }
}

// Upload dizinleri oluştur
$uploadDirs = ['comments', 'claims', 'profiles'];
foreach ($uploadDirs as $dir) {
    $path = UPLOAD_DIR . $dir;
    if (!file_exists($path)) {
        mkdir($path, 0755, true);
    }
}
      Name                    Last modified      Size  Description