<?php
include_once(ROOT . FOLDER_CORE . '/auth.php'); 
include_once(ROOT . FOLDER_CORE . '/class.php'); 

date_default_timezone_set('Europe/Madrid');
$date = date('Y-m-d H:i:s');

if ($auth == 1) {
    if(isset($_POST['key_car']) && isset($_POST['portal'])) {
        if(!empty($_POST['key_car']) && !empty($_POST['portal'])) {
            $Bibliotecas = new Bibliotecas($bd_conn);
            
            $activo = 1;
            $vehiculo = Statics::SafeInput($bd_conn, $_POST['key_car']);
            $portal = Statics::SafeInput($bd_conn, $_POST['portal']);

            //CREATE ASSOCIATIVE MULTIDIMENSIONAL ARRAY
            $key_portal = [];
            $sql_array = 'SELECT * FROM VEHICULOS_PORTALES';
            $res_array = $bd_conn->query($sql_array);
            while($row_array = $res_array->fetch_array()) {
                $key_portal[$row_array['ALIAS']] = [];
                array_push($key_portal[$row_array['ALIAS']], $row_array['CODIGO'], $row_array['DESCRIPCION']);
            }

            //CHECK IF KEY ARRAY EXISTS
            if(array_key_exists($_POST['portal'], $key_portal)) {
                if(isset($_POST['unpublish'])) {
                    $inactivo = 0;
                    $activo = 1;
                    
                    if($_POST['unpublish'] == "MAIN") {
                        
                        $sql = "UPDATE VEHICULOS_PUBLICACIONES SET FIN = ?, ACTIVO = ? WHERE VEHICULO = ? AND PORTAL = ?";
                        $stmt = $bd_conn->prepare($sql);
                        $stmt->bind_param('sisi', $date, $inactivo, $vehiculo, $key_portal[$portal][0]);
                        $stmt->execute();
                        $status = 'Successful';
                        $message = 'Car unpublished from main';
                        
                    } else {
                        if(isset($_POST['app_code_ext'])) {
                            $app_code_ext = Statics::SafeInput($bd_conn, $_POST['app_code_ext']);
                            $vehiculo = Statics::SafeInput($bd_conn, $_POST['key_car']);
                            $sql = "SELECT CODIGO FROM VEHICULOS WHERE ID_EXT = ? AND CODE_EXT = ?";
                            $stmt = $bd_conn->prepare($sql);
                            $stmt->bind_param('is', $vehiculo, $app_code_ext);
                            $stmt->execute();
                            $res = $stmt->get_result();
                            if($res->num_rows) {
                                $new_key_car = $res->fetch_array();
                                $vehiculo = $new_key_car['CODIGO'];
                            }
                            $sql = "UPDATE VEHICULOS_PUBLICACIONES SET ACTIVO = ?, FIN = ? WHERE PORTAL = ? AND VEHICULO = ?";
                            $stmt = $bd_conn->prepare($sql);
                            $stmt->bind_param('isii', $inactivo, $date, $key_portal[$portal][0], $vehiculo);
                            $stmt->execute();
                            $status = 'Successful';
                            $message = 'Car unpublished from external';
                        } else {
                            $status = 'Error';
                            $message = 'External code needed';
                        }
                            
                    }
                    
                } else {
                    $sql =  "SELECT VEHICULO, INICIO FROM VEHICULOS_PUBLICACIONES WHERE VEHICULO = ? AND PORTAL = ? AND ACTIVO = ?";
                    $base = $bd_conn->prepare($sql);
                    $base->bind_param('iii', $vehiculo, $key_portal[$portal][0], $activo);
                    $base->execute();
                    $res = $base->get_result();
                    if($res->num_rows == 0) {
                        $precio_contado = isset($_POST['price']) ? Statics::SafeInput($bd_conn, $_POST['price']) : FALSE;
                        $financiado = isset($_POST['financed']) ? Statics::SafeInput($bd_conn, $_POST['financed']) : FALSE;
                        $comentario = isset($_POST['comment']) ? Statics::SafeInput($bd_conn, $_POST['comment']) : NULL;
                        $sql = 'INSERT INTO VEHICULOS_PUBLICACIONES(VEHICULO, PORTAL, ACTIVO, INICIO, PRECIO_CONTADO, PRECIO_FINANCIADO, COMENTARIOS) VALUES(?, ?, ?, ?, ?, ?, ?)';
                        $stmt = $bd_conn->prepare($sql);
                        $stmt->bind_param('iiisiis', $vehiculo, $key_portal[$portal][0], $activo, $date, $precio_contado, $financiado, $comentario);
                        $stmt->execute();
                        $status = 'Successful';
                        $message = 'Car published';
                    } else {
                        $status = 'Warning';
                        $message = 'Car already published';
                    }
                }
                $data = [
                    'key_car'       =>      $vehiculo,
                    'portal'        =>      $key_portal[$portal][1],
                    'price'         =>      $precio_contado,
                    'financed'      =>      $financiado,
                    'comment'       =>      $comentario,
                    'status'        =>      $status,
                    'message'       =>      $message
                ];
            } else {
                $data = [
                    'status'            =>  'Error',
                    'message'           =>  'Portal not found'
                ];
            }
            
        } else {
            $data = [
                'status'            =>  'Error',
                'message'           =>  'Car or portal keys are empty'
            ];
        }
    } else {
        $data = [
            'status'            =>  'Error',
            'message'           =>  'Car or portal keys not found'
        ];
    }
}elseif ($auth == 0) {
    $data = [
        "code"      =>      "unauthorized_client",
        "message"   =>      "Invalid authorization token"
    ];
    
}
$bd_conn->close();

header("Content-type: application/json; charset=utf-8");
echo json_encode($data);



?>