<?php
session_start();
require_once "../../../config.php";
require_once "../../../validation.php";
require_once "../../../Helper.php";
require_once '../../database1.php';
require_once "../../check_admin.php";

require_once '../check_edit_page_ajax.php';

class editAjax extends database
{
     public function index($data,$id)
    {
    	$where['cl_id']=$id;

        return $this->update('tb_product',$data,$where);
    }

    public function checkSlug($slug, $id)
    {
    	$where[0]['cl_slug']['value'] = $slug;
    	$where[0]['cl_slug']['operator'] = '=';

    	$where[1]['cl_id']['value'] = $id;
    	$where[1]['cl_id']['operator'] = '!=';

    	return $this->fetchRow('tb_product', $where);
    }
}


$obj = new editAjax();

if(!isset($_POST['data']))
{
	http_response_code(400);
	echo json_encode(array('No input found'));
	exit;
}

$data = $_POST['data'];
$helper = new Helper();
$validation = new validation();

$data = $helper->changeSerialzeArrayValues($data);

$res = array();
$requiredFields = array('name', 'slug', 'cat_id', 'sub_cat_id', 'supplier_price', 'profit_percentage', 'monthly_price', 'brand_id', 'meta_description', 'keywords', 'active');
$return = $validation->checkRequired($requiredFields, $data);
if($return)
{
	$res['error_description'][] = $return;
}

$numericFields = array('regular_price', 'sale_price', 'monthly_price');
$return = $validation->checkNumeric($numericFields, $data);
if($return)
{
	$res['error_description'][] = $return;
}

$integerFields = array('cat_id', 'sub_cat_id', 'brand_id');
$return = $validation->checkInteger($integerFields, $data);
if($return)
{
	$res['error_description'][] = $return;
}

if(!empty($res['error_description']))
{
	$result['error_description'] = $validation->setErrors($res['error_description']);
	$result['error_text'] = $validation->setErrors($res['error_description']);

	http_response_code(400);
	echo json_encode($result);
	exit;
}

$slug = $obj->checkSlug($data['slug'], $id);
if($slug)
{
	http_response_code(400);
	echo json_encode(array('error_text' => 'Slug Already exists'));
	exit;
}

if(!isset($data['recommended']))
{
	$data['recommended'] = 0;
}

if(!isset($data['featured']))
{
	$data['featured'] = 0;
}

if(!isset($data['recent']))
{
    $data['recent'] = 0;
}

//$data = $validation->removeEmptyValues($data);
$data = $validation->setColumnPrefix($data);

$productID = $obj->index($data,$id);
if(!$productID)
{
	http_response_code(401);
	echo json_encode(array('error_text' => 'Something Went Wrong'));
	exit;
}

session_start();
$_SESSION['error_message'] = 'Product Updated Successfully';
$_SESSION['error_type'] = 'success';

http_response_code(200);
echo json_encode(array('message' => 'Product Updated Successfully', 'id' => $productID));
exit;
