<?php
session_start();
include '../config.php';

header('Content-Type: application/json; charset=utf-8');

$user_token = $_COOKIE['user_token'] ?? null;

if (empty($user_token)) {
    echo json_encode(['result' => 0, 'message' => 'Oturum bulunamadı!']);
    exit();
}

// Kullanıcı bilgilerini al
$myUser = $db->query("SELECT * FROM kullanicilar WHERE user_token = '$user_token'")->fetch(PDO::FETCH_ASSOC);

if (empty($myUser)) {
    echo json_encode(['result' => 0, 'message' => 'Kullanıcı bulunamadı!']);
    exit();
}

$user_id = $myUser['user_id'];

// Daha önce başvuru yapmış mı kontrol et
$checkQuery = $db->query("SELECT * FROM play_degerlendirme WHERE user_id = '$user_id' ORDER BY id DESC LIMIT 1");
$existingApplication = $checkQuery->fetch(PDO::FETCH_ASSOC);

// Eğer onaylanmış bir başvuru varsa, tekrar yükleme yapamaz
if ($existingApplication && $existingApplication['durum'] == 1) {
    echo json_encode(['result' => 0, 'message' => 'Başvurunuz zaten onaylandı! Tekrar yükleme yapamazsınız.']);
    exit();
}

// Dosya kontrolü
if (!isset($_FILES['playScreenshot']) || $_FILES['playScreenshot']['error'] != UPLOAD_ERR_OK) {
    echo json_encode(['result' => 0, 'message' => 'Dosya yükleme hatası!']);
    exit();
}

$file = $_FILES['playScreenshot'];
$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
$fileSize = $file['size'];
$fileError = $file['error'];

// Dosya uzantısını al
$fileExt = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
$allowedExtensions = ['jpg', 'jpeg', 'png'];

// Uzantı kontrolü
if (!in_array($fileExt, $allowedExtensions)) {
    echo json_encode(['result' => 0, 'message' => 'Sadece JPG, JPEG veya PNG formatında resim yükleyebilirsiniz!']);
    exit();
}

// Dosya boyutu kontrolü (max 15MB)
if ($fileSize > 15728640) {
    echo json_encode(['result' => 0, 'message' => 'Dosya boyutu 15MB\'dan küçük olmalıdır!']);
    exit();
}

// Yükleme klasörünü oluştur (eğer yoksa)
$uploadDir = '../assets/play_screenshots/';
if (!file_exists($uploadDir)) {
    mkdir($uploadDir, 0777, true);
}

// Benzersiz dosya adı oluştur
$newFileName = 'play_' . $user_id . '_' . time() . '.' . $fileExt;
$uploadPath = $uploadDir . $newFileName;

// Dosyayı yükle
if (move_uploaded_file($fileTmpName, $uploadPath)) {
    
    $relativePath = 'assets/play_screenshots/' . $newFileName;
    $currentTime = time();
    
    // Eğer daha önce reddedilmiş veya beklemede bir başvuru varsa, güncelle
    if ($existingApplication) {
        // Eski resmi sil
        if (file_exists('../' . $existingApplication['ekran_goruntusu'])) {
            unlink('../' . $existingApplication['ekran_goruntusu']);
        }
        
        // Başvuruyu güncelle (durum=0, tarihler temizleniyor)
        $query = $db->prepare("UPDATE play_degerlendirme SET 
            ekran_goruntusu = :resim,
            tarih = :tarih,
            durum = 0,
            admin_notu = NULL,
            onay_tarihi = NULL,
            jeton_verildi = 0
            WHERE user_id = :user_id");
        
        $update = $query->execute([
            'resim' => $relativePath,
            'tarih' => $currentTime,
            'user_id' => $user_id
        ]);
        
    } else {
        // Yeni başvuru oluştur
        $query = $db->prepare("INSERT INTO play_degerlendirme 
            (user_id, ekran_goruntusu, durum, tarih, jeton_verildi) 
            VALUES (:user_id, :resim, 0, :tarih, 0)");
        
        $insert = $query->execute([
            'user_id' => $user_id,
            'resim' => $relativePath,
            'tarih' => $currentTime
        ]);
    }
    
    echo json_encode([
        'result' => 1, 
        'message' => 'Ekran görüntüsü başarıyla yüklendi!',
        'resimLink' => $relativePath
    ]);
    
} else {
    echo json_encode(['result' => 0, 'message' => 'Dosya yüklenirken bir hata oluştu!']);
}
?>

