<?php
error_reporting(E_ALL);
ini_set('display_errors', 1); // ⚠️ সাময়িক Debug
/**
 * upload_avatar.php
 * User-এর নিজের পাঠানো Photo, Server-এ Save করে,
 * সেই ছবির URL ফেরত দেয় — এটাই পরে EditUserPhoto.php-তে ব্যবহার হয়।
 */
header('Content-Type: application/json; charset=utf-8');

// ⚠️ সাময়িক Debug — $_FILES-এ ঠিক কী আসছে তা দেখানো
if (!isset($_FILES['photo'])) {
    echo json_encode([
        'code' => 1,
        'msg' => 'কোনো ছবি পাওয়া যায়নি',
        'debug_files' => $_FILES,
        'debug_post' => $_POST,
        'debug_post_max_size' => ini_get('post_max_size'),
        'debug_upload_max_filesize' => ini_get('upload_max_filesize')
    ]);
    exit;
}

$file = $_FILES['photo'];

// ⚠️ সাময়িক Debug — File-এর Error Code দেখানো
if ($file['error'] !== UPLOAD_ERR_OK) {
    $errorMessages = [
        1 => 'php.ini-এর upload_max_filesize-এর চেয়ে বড়',
        2 => 'Form-এর MAX_FILE_SIZE-এর চেয়ে বড়',
        3 => 'শুধু আংশিক Upload হয়েছে',
        4 => 'কোনো File Upload হয়নি',
        6 => 'Temporary Folder পাওয়া যায়নি',
        7 => 'Disk-এ Write করা যায়নি',
    ];
    echo json_encode([
        'code' => 1,
        'msg' => 'Upload Error: ' . ($errorMessages[$file['error']] ?? 'Unknown Error #' . $file['error'])
    ]);
    exit;
}

// ✅ শুধু আসল ছবি (jpg/png/webp) Accept করা, আর Size Limit (২ MB)
$allowedTypes = ['image/jpeg', 'image/png', 'image/webp'];
if (!in_array($file['type'], $allowedTypes)) {
    echo json_encode(['code' => 1, 'msg' => 'শুধু JPG/PNG/WEBP ছবি দেওয়া যাবে']);
    exit;
}
if ($file['size'] > 2 * 1024 * 1024) {
    echo json_encode(['code' => 1, 'msg' => 'ছবির Size ২MB-এর কম হতে হবে']);
    exit;
}

// ✅ একটা আলাদা Folder-এ Save করা (Unique নাম দিয়ে, যাতে Overwrite না হয়)
$uploadDir = __DIR__ . '/uploads/avatars/';
if (!file_exists($uploadDir)) {
    @mkdir($uploadDir, 0755, true);
}

$ext = pathinfo($file['name'], PATHINFO_EXTENSION);
$newFileName = 'avatar_' . uniqid() . '.' . $ext;
$targetPath = $uploadDir . $newFileName;

if (move_uploaded_file($file['tmp_name'], $targetPath)) {
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https://' : 'http://';
    $fullUrl = $protocol . $_SERVER['HTTP_HOST'] . '/uploads/avatars/' . $newFileName;
    echo json_encode(['code' => 0, 'url' => $fullUrl]);
} else {
    echo json_encode([
        'code' => 1,
        'msg' => 'Upload ব্যর্থ হয়েছে',
        'debug_target_path' => $targetPath,
        'debug_dir_exists' => file_exists($uploadDir),
        'debug_dir_writable' => is_writable($uploadDir),
        'debug_tmp_exists' => file_exists($file['tmp_name'])
    ]);
}
