package agilpizza.dao;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import agilpizza.modelo.Bebida;
import agilpizza.modelo.CategoriaBebida;


public class CategoriaBebidaDAO {
	private List<CategoriaBebida> categorias;

	/**
	 * Construtor padrão para o DAO que armazena categorias na memória.
	 * 
	 */

	public CategoriaBebidaDAO(){
		categorias = new ArrayList<CategoriaBebida>();
		List<Bebida> bebidas = new ArrayList<Bebida>();
		
		Bebida bebida = new Bebida("Coca-Cola", 2.0, Bebida.PEQUENO);
		bebidas.add(bebida);
		bebida = new Bebida("Fanta", 2.0, Bebida.PEQUENO);
		bebidas.add(bebida);
		bebida = new Bebida("Guaraná", 2.0, Bebida.PEQUENO);
		bebidas.add(bebida);
		bebida = new Bebida("Coca-Cola", 5.0, Bebida.GRANDE);
		bebidas.add(bebida);
		bebida = new Bebida("Fanta", 5.0, Bebida.GRANDE);
		bebidas.add(bebida);
		bebida = new Bebida("Guaraná", 5.0, Bebida.GRANDE);
		bebidas.add(bebida);
		CategoriaBebida categoria = new CategoriaBebida("Refrigerantes", bebidas);
		categorias.add(categoria);

		bebidas = new ArrayList<Bebida>();
		bebida = new Bebida("Skol", 3.0, Bebida.PEQUENO);
		bebidas.add(bebida);
		bebida = new Bebida("Brahma", 3.0, Bebida.PEQUENO);
		bebidas.add(bebida);
		bebida = new Bebida("Erdinger", 3.0, Bebida.PEQUENO);
		bebidas.add(bebida);
		bebida = new Bebida("Skol", 5.0, Bebida.GRANDE);
		bebidas.add(bebida);
		bebida = new Bebida("Brahma", 5.0, Bebida.GRANDE);
		bebidas.add(bebida);
		bebida = new Bebida("Erdinger", 5.0, Bebida.GRANDE);
		bebidas.add(bebida);
		categoria = new CategoriaBebida("Cervejas", bebidas);
		categorias.add(categoria);
		
		bebidas = new ArrayList<Bebida>();
		bebida = new Bebida("Lindoya", 1.50, Bebida.PEQUENO);
		bebidas.add(bebida);
		bebida = new Bebida("Petrópolis", 1.50, Bebida.PEQUENO);
		bebidas.add(bebida);
		bebida = new Bebida("Minalba", 1.50, Bebida.PEQUENO);
		bebidas.add(bebida);
		bebida = new Bebida("Lindoya c/gás", 1.50, Bebida.PEQUENO);
		bebidas.add(bebida);
		bebida = new Bebida("Petrópolis c/gás", 1.50, Bebida.PEQUENO);
		bebidas.add(bebida);
		bebida = new Bebida("Minalba c/gás", 1.50, Bebida.PEQUENO);
		bebidas.add(bebida);
		bebida = new Bebida("Lindoya", 2.5, Bebida.GRANDE);
		bebidas.add(bebida);
		bebida = new Bebida("Petrópolis", 2.5, Bebida.GRANDE);
		bebidas.add(bebida);
		bebida = new Bebida("Minalba", 2.5, Bebida.GRANDE);
		bebidas.add(bebida);
		bebida = new Bebida("Lindoya c/gás", 2.5, Bebida.GRANDE);
		bebidas.add(bebida);
		bebida = new Bebida("Petrópolis c/gás", 2.5, Bebida.GRANDE);
		bebidas.add(bebida);
		bebida = new Bebida("Minalba c/gás", 2.5, Bebida.GRANDE);
		bebidas.add(bebida);
		categoria = new CategoriaBebida("Águas", bebidas);
		categorias.add(categoria);
	}
	public List<CategoriaBebida> buscaCategorias() {
		return categorias;
	}
	// Método auxiliara para retornar uma bebida 
	// supondo que idBebida seja formado por um nome de bebida + tamanho
	public Bebida buscarBebida(String idBebida){
		String nomeBebida = idBebida.substring(2, idBebida.length() - 3);
		String tamanhoBebida = idBebida.substring(idBebida.length() - 3,idBebida.length());
		for (CategoriaBebida categoria: categorias){
			for(Bebida bebida: categoria.getBebidas()){
				if (bebida.getNome().equals(nomeBebida) && bebida.getTamanho().equals(tamanhoBebida))
					return bebida;
			}
		}
		// return null; FIXME
		return categorias.get(0).getBebidas().get(0);
	}

}

