package com.softgraf.model.dao;

import java.io.IOException;
import java.sql.Connection;
import java.util.List;

import com.softgraf.model.ClienteProperty;

import javafx.application.Application;
import javafx.application.Platform;
import javafx.stage.Stage;

public class TesteDAO extends Application {

	public static void main(String[] args) {
		launch(args);
	}

	@Override
	public void start(Stage palco) throws Exception {
		String arqConfig = "d:/farmacia.properties";
		FarmaciaProperties farmaciaProperties;
		Connection conexao = null;
		
		try {
			farmaciaProperties = new FarmaciaProperties(arqConfig);
			FabricaDeConexoes fabricaDeConexoes = new FabricaDeConexoes(farmaciaProperties);
			
			conexao = fabricaDeConexoes.criarConexao();
			
			if (conexao != null){
			
				TabelasFarmaciaDAO tabelas = new TabelasFarmaciaDAO(conexao);
				System.out.printf("\nCriando tabela cliente... %b\n",
						tabelas.criarTabelaCliente());
				
				ClienteProperty joao = new ClienteProperty()
								.tipo('F')
								.nome("Aparício Russef")
								.cpfCnpj("55667896-55")
								.email("joaodasilva@gmail.com")
								.rua("Santana, 820")
								.bairro("Centro")
								.cidade("Ponta Grossa")
								.estado("Paraná")
								.cep("84010-320")
								.fone("(42) 3224-0705");
				
				
				ClienteDAO clienteDAO = new ClienteDAO(conexao);
//				System.out.printf("\nInserindo cliente... %b\n",
//						clienteDAO.inserir(joao));
				
				System.out.println("\nListando os primeiros 100 registros.");
				List<ClienteProperty> listaClientes = clienteDAO.listarPorId(1, 100);
				
				listaClientes.forEach(System.out::println);
				
//				System.out.printf("\nRemovendo o registro ID=3... %b", 
//						clienteDAO.remover(3));
				
//				System.out.println("\nBuscando ID=1...");
//				ClienteProperty c = clienteDAO.buscar(1);
//				System.out.println(c);
				
//				System.out.println("\nAtualizando ID=1");
//				c.nome("Carlos Eduardo").cidade("Curitiba");
//				System.out.printf("%b", clienteDAO.atualizar(1, c));
				
				
				
				fabricaDeConexoes.fecharConexao(conexao);
				Platform.exit();
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}

}
