<?php
session_start();
require_once 'config.php';

header('Content-Type: application/json');

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['status' => 0, 'message' => 'Geçersiz istek!', 'fields' => []]);
    exit;
}

$product_id = isset($_POST['product']) ? (int)$_POST['product'] : -1;
$customer_name = isset($_POST['musteri_adisoyadi']) ? cleanInput($_POST['musteri_adisoyadi']) : '';
$customer_phone = isset($_POST['musteri_telefon']) ? cleanInput($_POST['musteri_telefon']) : '';
$customer_city = !empty($_POST['customer_il']) ? cleanInput($_POST['customer_il']) : (isset($_POST['musteri_il']) ? cleanInput($_POST['musteri_il']) : '');
$customer_district = isset($_POST['musteri_ilce']) ? cleanInput($_POST['musteri_ilce']) : '';
$customer_address = isset($_POST['musteri_adres']) ? cleanInput($_POST['musteri_adres']) : '';
$payment_type = isset($_POST['payment_type']) ? cleanInput($_POST['payment_type']) : '';
$sales_agreement = isset($_POST['sales_agreement']) ? cleanInput($_POST['sales_agreement']) : '';

$errors = [];
$error_fields = [];

if ($product_id < 0 || $product_id > 2) {
    $errors[] = 'Lütfen geçerli bir ürün seçin!';
    $error_fields[] = 'product';
}
if (empty($customer_name) || strlen($customer_name) < 3) {
    $errors[] = 'Lütfen adınızı soyadınızı doğru girin (en az 3 karakter)!';
    $error_fields[] = 'musteri_adisoyadi';
}
if (empty($customer_phone) || strlen($customer_phone) < 10) {
    $errors[] = 'Lütfen geçerli bir telefon numarası girin!';
    $error_fields[] = 'musteri_telefon';
}
if (empty($customer_city)) {
    $errors[] = 'Lütfen il seçin!';
    $error_fields[] = 'musteri_il';
}
if (empty($customer_district)) {
    $errors[] = 'Lütfen ilçe seçin!';
    $error_fields[] = 'musteri_ilce';
}
if (empty($customer_address) || strlen($customer_address) < 10) {
    $errors[] = 'Lütfen adresinizi detaylı girin (en az 10 karakter)!';
    $error_fields[] = 'musteri_adres';
}
if (empty($payment_type) || !in_array($payment_type, ['kapidanakit', 'kapidakart'])) {
    $errors[] = 'Lütfen ödeme türü seçin!';
    $error_fields[] = 'payment_type';
}
if (empty($sales_agreement)) {
    $errors[] = 'Mesafeli satış sözleşmesini kabul etmeniz gerekmektedir!';
    $error_fields[] = 'sales_agreement';
}

if (!empty($errors)) {
    echo json_encode([
        'status' => 0,
        'message' => implode('<br>', $errors),
        'fields' => $error_fields
    ]);
    exit;
}

$product_name = getProductName($product_id);
$product_price = getProductPrice($product_id);

$order_no = 'MP' . date('YmdHis') . rand(100, 999);

try {
    $stmt = $pdo->prepare("INSERT INTO orders (order_no, product_id, product_name, product_price, customer_name, customer_phone, customer_city, customer_district, customer_address, payment_type, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'pending')");
    
    $result = $stmt->execute([
        $order_no,
        $product_id,
        $product_name,
        $product_price,
        $customer_name,
        $customer_phone,
        $customer_city,
        $customer_district,
        $customer_address,
        $payment_type
    ]);
    
    if ($result) {
        $last_id = $pdo->lastInsertId();
        
        $_SESSION['last_order_id'] = $last_id;
        $_SESSION['last_order_no'] = $order_no;
        $_SESSION['last_order_name'] = $customer_name;
        $_SESSION['last_order_product'] = $product_name;
        $_SESSION['last_order_price'] = $product_price;
        $_SESSION['last_order_payment'] = $payment_type;
        
        echo json_encode([
            'status' => 1,
            'odeme_type' => $payment_type,
            'redirect' => 'success.php',
            'message' => 'Siparişiniz başarıyla alındı!',
            'order_no' => $order_no
        ]);
    } else {
        echo json_encode([
            'status' => 0,
            'message' => 'Sipariş kaydedilemedi! Lütfen tekrar deneyin.',
            'fields' => []
        ]);
    }
} catch(PDOException $e) {
    echo json_encode([
        'status' => 0,
        'message' => 'Sistem hatası: ' . $e->getMessage(),
        'fields' => []
    ]);
}
?>
