<?php 

class Gerar_model_arqDAO
{
	function montarArquivo($_tabela_bd, $nome_classe, $_lista_carga_tabela)
	{
		$model = "<?php\nclass ".$nome_classe."\n{\n";
		$colunas = $_tabela_bd->getLista_colunas();
		///verificar se possuí um chave primaria, se não tem que criar id
		//$tem_chave_promaria = false;
		for ($i=0; $i <count($colunas); $i++)
		{	
			$model .= "	private \$_".$colunas[$i]->getColuna().";\n";
		}	
		///Carga de tabelas
		$getSetCargaTabela = "";
		foreach($_lista_carga_tabela as $_carga_tabela)
		{
			$_lista_colunas_carga_tabela = $_carga_tabela->getTabelaCarregada()->getLista_colunas();
			foreach ($_lista_colunas_carga_tabela as $coluna_carga_tabela)
			{
				if ($coluna_carga_tabela->getTipoTabela()->getId() != $_tabela_bd->getId() and $coluna_carga_tabela->getTipo() == "tabela")
				{	
					$nome_coluna_carga = "lista_".strtoupper(substr( $coluna_carga_tabela->getColuna(),0,1)).substr($coluna_carga_tabela->getColuna(),1);
					$model .= "	private \$_lista".$nome_coluna_carga." = array();\n";
					$getSetCargaTabela .= "	public function set".$nome_coluna_carga."(\$". $coluna_carga_tabela->getColuna().")\n";
					$getSetCargaTabela .= "	{\n";
					$getSetCargaTabela .= " 		\$this->_".$coluna_carga_tabela->getColuna()." = \$". $coluna_carga_tabela->getColuna().";\n";
					$getSetCargaTabela .= "	}\n";
					$getSetCargaTabela .= "	public function get".$nome_coluna_carga."()\n";
					$getSetCargaTabela .= "	{\n";
					$getSetCargaTabela .= " 		return \$this->_".$coluna_carga_tabela->getColuna().";\n";
					$getSetCargaTabela .= "	}\n";
				}	
			}
			
		}
		for ($i=0; $i <count($colunas); $i++)
		{	
			//echo $colunas[$i]->getColuna()." <br>";
			$nome_coluna = strtoupper(substr($colunas[$i]->getColuna(),0,1)).substr($colunas[$i]->getColuna(),1);
			switch ($colunas[$i]->getTipo())
			{
				case "data":
					$model .= "	public function set".$nome_coluna."(DateTime \$".$colunas[$i]->getColuna().")\n";
				break;
				default:
					$model .= "	public function set".$nome_coluna."(\$".$colunas[$i]->getColuna().")\n";
				
			}	
			
			$model .= "	{\n";
			$model .= " 		\$this->_".$colunas[$i]->getColuna()." = \$".$colunas[$i]->getColuna().";\n";
			$model .= "	}\n";
			$model .= "	public function get".$nome_coluna."()\n";
			$model .= "	{\n";
			$model .= " 		return \$this->_".$colunas[$i]->getColuna().";\n";
			$model .= "	}\n";
				
		}
		$model .= $getSetCargaTabela;
		$model .= "}";
		
		return $model;
		
	}
}