<?php
require_once("../../../../config/config_dir_raiz.php");
$config = new Config();
require_once($config->diretorio_raiz()."/componentes/construtor/src/model/bd/Valida_script_bd.php");
new Valida_script_bd();
require_once($config->diretorio_raiz()."/componentes/construtor/src/model/bd/Tabela_bdDAO.php");
$tabela_bdDAO = new Tabela_bdDAO();
require_once($config->diretorio_raiz()."/componentes/construtor/src/model/arquivo/Tabela_arqDAO.php");
$tabela_arqDAO = new Tabela_arqDAO();
require_once($config->diretorio_raiz()."/componentes/construtor/src/model/bd/Carga_tabela_bdDAO.php");
$carga_tabela_bdDAO = new Carga_tabela_bdDAO();
if (isset($_GET["mod"]) && $_GET["mod"] == "listar")
{
	$listaTabelas = $tabela_bdDAO->listarTabelas();
	include_once($config->diretorio_raiz()."/componentes/construtor/src/view/Listar_tabela_bd.php");
	
} 
elseif (isset($_GET["mod"]) && $_GET["mod"] == "listarControladores")
{
	$listaTabelas = $tabela_bdDAO->listarTabelas();
	include_once($config->diretorio_raiz()."/componentes/construtor/src/view/Listar_controladores.php");
	
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "form")
{
	$_tabela_bd = $tabela_bdDAO->listarTabela($_GET["id"]);
	include_once($config->diretorio_raiz()."/componentes/construtor/src/view/Formulario_tabela_bd.php");
} 	
elseif (isset($_GET["mod"]) && $_GET["mod"] == "novo")
{
	$_tabela_bd = new  Tabela_bd();
	include_once($config->diretorio_raiz()."/componentes/construtor/src/view/Formulario_tabela_bd.php");
}elseif (isset($_GET["mod"]) && $_GET["mod"] == "salvar")
{
	$_tabela_bd = new  Tabela_bd();
	$_tabela_bd->setTabela($_POST["tabela"]);
	$_tabela_bd->setDescricao($_POST["descricao"]);
	$retorno = array();
	if (!isset($_POST["id"]))
	{
		try 
		{
			$tabela_bdDAO->salvarTabela($_tabela_bd);
			$retorno["mensagem"] = "Inserido com sucesso!";
			$retorno["status"] = true;
		}
		catch (Exception  $e)
		{
			$retorno["mensagem"] = $e->getMessage();
			$retorno["status"] = false;			
		}
	}
	else
	{
		$_tabela_bd->setId($_POST["id"]);
		
		try 
		{
			$tabela_bdDAO->atualizarTabela($_tabela_bd);
			$retorno["mensagem"] = "Alterado com sucesso!";
			$retorno["status"] = true;
		}
		catch (Exception  $e)
		{
			$retorno["mensagem"] = $e->getMessage();
			$retorno["status"] = false;			
		}
	}	
	echo json_encode($retorno);
	
}elseif (isset($_GET["mod"]) && $_GET["mod"] == "excluir")
{
	try 
	{
		$_tabela_bd = $tabela_bdDAO->listarTabela($_GET["id"]);
		$tabela_arqDAO->excluirTabela($_tabela_bd);
		$tabela_bdDAO->excluirTabela($_tabela_bd);	
		$retorno["mensagem"] = "Excluído com sucesso!";
		$retorno["status"] = true;
	}
	catch (Exception  $e)
	{
		$retorno["mensagem"] = $e->getMessage();
		$retorno["status"] = false;			
	}
	echo json_encode($retorno);
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "gerar")
{
	$_tabela_bd = $tabela_bdDAO->listarTabela($_GET["id"]);
	$retorno["mensagem"] = $tabela_arqDAO->gerarAquivosTabela($_tabela_bd, $carga_tabela_bdDAO->listarCargaTabelas($_GET["id"]));
	 //$tabela_arqDAO->gerarAquivosTabela($_tabela_bd);
	echo json_encode($retorno);
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "gerarTodos")
{
	$retorno["mensagem"] = "";
	$listaTabelas = $tabela_bdDAO->listarTabelas();
	if (count($listaTabelas) == 0)
	{
		$retorno["mensagem"] = "Nenhuma tabela cadastrada";
	}
	foreach($listaTabelas as $_tabela_bd)
	{
		$retorno["mensagem"] .= $tabela_arqDAO->gerarAquivosTabela($_tabela_bd, $carga_tabela_bdDAO->listarCargaTabelas($_tabela_bd->getId()))."\n";
	}	
	 //$tabela_arqDAO->gerarAquivosTabela($_tabela_bd);
	echo json_encode($retorno);
}
elseif (isset($_GET["mod"]) && $_GET["mod"] == "combobox")
{
	$listaTabelas = $tabela_bdDAO->listarTabelas();
	include_once($config->diretorio_raiz()."/componentes/construtor/src/view/Combobox_tabela_bd.php");
	
}
 	 	



