<?php
$data = array(); //Convertimos la consulta aun array
$listLinks = array(); //Almacenamos la lista de link
$finalData = array();
$consulta = ""; //Consulta para traer documentos
$whitLink = true;

$consulta_link = "SELECT * FROM link WHERE idDocumento = $idDocumento";
$response_link  = mysqli_query($conexion, $consulta_link);
if (mysqli_num_rows($response_link) <= 0) {
    $whitLink = false;
}


if ($whitLink) {
    $consulta = "SELECT * FROM documento AS doc LEFT JOIN link AS links ON doc.idDocumento = links.idDocumento WHERE doc.idDocumento = $idDocumento";
} else {
    $consulta = "SELECT * FROM documento WHERE idDocumento = $idDocumento";
}

$resultado  = mysqli_query($conexion, $consulta);
if (!empty($resultado)) {
    //Obtenemos un array
    while ($row = mysqli_fetch_array($resultado)) {
        if ($whitLink) {
            $dataDocument = array(
                "idDocumento" => $row['idDocumento'],
                "titulo" => $row['titulo'],
                "descripcion" => $row['descripcion'],
                "documento" => $row['documento'],
                "tipoArchivo" => $row['tipoArchivo'],
                "idModulo" => $row['idModulo'],
                "idLink" => $row['idLink'],
                "texto" => $row['texto'],
                "color" => $row['color'],
                "enlace" => $row['enlace'],
            );
            array_push($data, $dataDocument);
        } else {
            $dataDocument = array(
                "idDocumento" => $row['idDocumento'],
                "titulo" => $row['titulo'],
                "descripcion" => $row['descripcion'],
                "documento" => $row['documento'],
                "tipoArchivo" => $row['tipoArchivo'],
                "idModulo" => $row['idModulo']
            );
            array_push($data, $dataDocument);
        }
    }

    //Buscamos array

    if ($whitLink) {
        foreach ($data as $value) {
            if (!buscarId($listLinks, $value['idLink'])) {
                $aux_link = array(
                    "idLink" => (int)$value['idLink'],
                    "texto" => $value['texto'],
                    "color" => $value['color'],
                    "enlace" => (int)$value['enlace'],
                );
                array_push($listLinks, $aux_link);
            }
        }
    }


    //Creamos el dato final
    $aux = 0;
    foreach ($data as $valueData) {
        if ($aux != $valueData['idDocumento']) {

            if ($whitLink) {
                $finalData = array(
                    "idDocumento" => (int)$valueData['idDocumento'],
                    "titulo" => $valueData['titulo'],
                    "descripcion" => $valueData['descripcion'],
                    "documento" => $valueData['documento'],
                    "tipoArchivo" => $valueData['tipoArchivo'],
                    "idModulo" => $valueData['idModulo'],
                    "listaLinks" => $listLinks
                );
            } else {
                $finalData = array(
                    "idDocumento" => (int)$valueData['idDocumento'],
                    "titulo" => $valueData['titulo'],
                    "descripcion" => $valueData['descripcion'],
                    "documento" => $valueData['documento'],
                    "tipoArchivo" => $valueData['tipoArchivo'],
                    "idModulo" => $valueData['idModulo'],
                    "listaLinks" => []
                );
            }
        }
        $aux = (int)$valueData['idDocumento'];
    }

    //mysqli_free_result($resultado);


    echo json_encode(array("code" => CODE_SUCCESS, "message" =>  $finalData));
} else {
    echo json_encode(array("code" => CODE_FAILED, "message" => 'Documento no encontrado'));
}


function buscarId($Lista, $id)
{
    //Agregamos lista de links
    $valorEncontrado = false;
    foreach ($Lista as $row) {
        if ($row['idLink'] != NULL) {
            if ((int)$row['idLink'] == $id) {
                $valorEncontrado = true;
            }
        }
    }
    return $valorEncontrado;
}
