package lab10.X1;

import java.util.Hashtable;

public class Gestor extends Observer{

    private String nome;
    Hashtable<Produto,Estado> leilao = new Hashtable<Produto,Estado>();


    public Gestor(String nome){
        this.nome = nome;

        //introduz os produtos no dicionario com os seus estados
         for(Produto prod : Produto.produtosTotal){
            prod.newObs(this);
            leilao.put(prod, prod.getEstado());
        }
    }
    
    // poe em leilao
    public void startAuction(Produto prod){
        prod.setEstado(Estado.LEILAO);
    }

    // times up e prod foi vendido
    public void prodSold(Produto prod){
        prod.setEstado(Estado.VENDAS);
    }

    // poe em stock
    public void prodToStock(Produto prod){
        prod.setEstado(Estado.STOCK);
    }

    // acaba leilao
    public void endAuction(Produto prod){
        if (prod.getHighestBidder() == null)
            prodToStock(prod);

        else 
            prodSold(prod);
            prod.clearProd();

    }

    public String getNome() {
        return nome;
    }

    public void update(Produto prod) {
        if (!prod.getEstado().equals(leilao.get(prod))){
            System.out.println("(GESTOR)[" + nome + "]: O produto " + prod.getId() + "." + prod.getNome() + " foi movido para " + prod.getEstado());
            leilao.put(prod, prod.getEstado());
        } 
    }
}
