package agilpizza.modelo;

import java.util.ArrayList;
import java.util.List;

public class Pizza {
	private static int geradorDeID = 0;
	private int id;
	private String nome = "sem nome";
	private List<Ingrediente> ingredientes;
	private double preco=10.0;
	private String borda="Sem Borda";
	private String tipoMassa="Grossa";
	
	public Pizza(String nome) {
		this.ingredientes = new ArrayList<Ingrediente>();
		this.nome = nome;
		this.id = gerarID();
	}
	public void addBorda(String Borda){
		this.borda=Borda;
		this.preco+=2.0;
	}
	
	@Override
	public boolean equals(Object obj) {
		return id == ((Pizza) obj).getId();
	}
	public boolean temBorda(){
		return !borda.equals("Sem Borda");
	}
	public String getBorda(){
	return this.borda;
	}
	
	public synchronized static int gerarID() {
		return geradorDeID++;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public List<Ingrediente> getIngredientes() {
		return ingredientes;
	}
	
	public double getPreco(){
		return this.preco;
	}
	
	public void setIngredientes(List<Ingrediente> ingredientes) {
		this.ingredientes = ingredientes;
	}
	
	public void adicionaIngrediente(String nome){
		adicionaIngrediente(nome,0);
	}
	public void adicionaIngrediente(String nome,double preco){
		adicionaIngrediente(nome,preco,1);
	}
	public void adicionaIngrediente(String nome,double preco,int quantidade){
		Ingrediente novo = new Ingrediente(nome,preco,quantidade);
		this.preco+=quantidade*preco;
		this.ingredientes.add(novo);
	}

	public void adicionaIngrediente(Ingrediente ingrediente){
		this.ingredientes.add(ingrediente);
	}

	public String getTipoMassa() {
		return tipoMassa;
	}

	public void setTipoMassa(String tipoMassa) {
		this.tipoMassa = tipoMassa;
	}

	public int getId() {
		return id;
	}

}
