package com.softgraf.vendas.model.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.chart.PieChart;

public class Consultas {
	
	public static ObservableList<PieChart.Data> clientesPorCidade(Conexao conexao) {
		ObservableList<PieChart.Data> lista = FXCollections.observableArrayList();
		String sql = "SELECT cidade, count(e.cidade) AS quantidade FROM Endereco AS e, Cliente AS c  WHERE e.id=c.endereco_id GROUP BY e.cidade ORDER BY quantidade DESC";

		try {
			Statement cmd = conexao.getConexao().createStatement();
			ResultSet rs = cmd.executeQuery(sql);

			while (rs.next()){
				lista.add(new PieChart.Data(rs.getString("cidade"), (rs.getInt("quantidade"))));
			}
			
			cmd.close();

		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return lista;
	}
	
	public static ObservableList<PieChart.Data> clientesPorEstado(Conexao conexao) {
		ObservableList<PieChart.Data> lista = FXCollections.observableArrayList();
		String sql = "SELECT estado, count(e.estado) AS quantidade FROM Endereco AS e, Cliente AS c  WHERE e.id=c.endereco_id GROUP BY e.estado ORDER BY quantidade DESC";

		try {
			Statement cmd = conexao.getConexao().createStatement();
			ResultSet rs = cmd.executeQuery(sql);

			while (rs.next()){
				lista.add(new PieChart.Data(rs.getString("estado"), (rs.getInt("quantidade"))));
			}
			
			cmd.close();

		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return lista;
	}
}
