<?php
    header('Access-Control-Allow-Origin: '.$config->get('site_url'));
    header('Content-Type: application/json');
    header('Access-Control-Allow-Methods: POST');
    header('Access-Control-Allow-Headers: Access-Control-Allow-Headers,Content-Type,Access-Control-Allow-Methods, Authorization, X-Requested-With');

    $response           = [];
    if($_SERVER["REQUEST_METHOD"] == "POST") {
        if(isset($_POST['csrf_token']) && $csrf_generator->validate($_POST['csrf_token'])) {
            if(isset($_POST['action']) && isset($_POST['action'])) {
                if($_POST['action'] == "delete-image"){
                    if(isset($_POST['id']) && !empty($_POST['id'])){
                        $stmt = $this->db->query("DELETE FROM {$this->db->prefix}product_images WHERE id=:id", array(":id"=>$_POST['id']));
                        if(!$stmt->error) {
                            $response = array('status'=>true, 'message'=>'Görsel başarıyla silindi');
                        }else{
                            $response = array('status'=>false, 'message'=>'Bir hata oluştu ve görsel silinemedi. Lütfen daha sonra tekrar deneyiniz.');
                        }
                    }else{
                        $response = array('status'=>false, 'message'=>'Lütfen silmek için bir görsel seçin.');
                    }
                } else if($_POST['action'] == "upload-image"){
                    if(isset($_POST['product_id']) && !empty($_POST['product_id'])){
                        $product_id      = (int)$_POST['product_id'];
                        $sort_order      = isset($_POST['order']) && !empty($_POST['order']) ? (int)$_POST['order'] : 0;
                        $alt_text        = isset($_POST['alt_text']) && !empty($_POST['alt_text']) ? $_POST['alt_text'] : "";
                        $product_title   = isset($_POST['product_title']) && !empty($_POST['product_title']) ? $_POST['product_title'] : "product-image";

                        if(!isset($_FILES['image']) || !file_exists($_FILES['image']['tmp_name']) || !is_uploaded_file($_FILES['image']['tmp_name'])){
                            $response = array('status'=>false, 'message'=>'Lütfen bir görsel seçin.');
                        } else {
                            $image_parts         = pathinfo($_FILES['image']["name"]);
                            $image               = $product_title."-".uniqid().".".$image_parts['extension'];
                            $utils->resizeCropImage(350, 350, $_FILES['image']['tmp_name'], "/public/assets/images/products/medium/".$image);
                            $utils->resizeCropImage(75, 75, $_FILES['image']['tmp_name'], "/public/assets/images/products/thumb/".$image);
                            move_uploaded_file($_FILES['image']['tmp_name'], "/public/assets/images/products/large/".$image);

                            $stmt = $this->db->query("INSERT INTO {$this->db->prefix}product_images (`product_id`, `image`, `alt_text`, `sort_order`, `option_id`) VALUES (:product_id, :image, :alt_text, :sort_order, 0)", array(":product_id"=>$product_id, ":image"=>$image, ":alt_text"=>$alt_text, ":sort_order"=>$sort_order));
                            if(!$stmt->error) {
                                $response = array('status'=>true, 'message'=>'Görsel başarıyla silindi');
                            }else{
                                $response = array('status'=>false, 'message'=>'Bir hata oluştu ve görsel silinemedi. Lütfen daha sonra tekrar deneyiniz.');
                            }
                        }
                    }else{
                        $response = array('status'=>false, 'message'=>'Lütfen görsel yüklemeden önce ürün seçin.');
                    }
                }
            } else {
                $response = array('status'=>false, 'message'=>'Lütfen tüm alanları doldurunuz.');
            }
        }else{
            $response = array('status'=>false, 'message'=>"Hatalı CSRF Token!");
        }
    }else{
        $response = array('status'=>false, 'message'=>"Hatalı İstek!");
    }

    echo json_encode($response);