package com.rjconsultores.ventaboletos.web.gui.controladores.pricing;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.rjconsultores.ventaboletos.entidad.Categoria;
import com.rjconsultores.ventaboletos.service.CategoriaService;
import com.rjconsultores.ventaboletos.utilerias.ApplicationProperties;
import com.rjconsultores.ventaboletos.utilerias.CustomEnum;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;

@Controller("pricingController")
@Scope("prototype")
public abstract class PricingController  extends MyGenericForwardComposer {

	private static final long serialVersionUID = -63691911293429900L;
	
	@Autowired
	private CategoriaService categoriaService;
	
	protected void incluirCategoriasPadroes() {
		if (ApplicationProperties.getInstance().isCustomHabilitado(CustomEnum.USA_PADRAO_PRICING_TIPO_PASSAGEM_PET.getDescricao())) {
			Categoria categoriaNormal = getCategoriaNormal();
			Categoria categoriaPET = getCategoriaPET();

			if (categoriaNormal != null) {
				incluirCategoriaNormal(categoriaNormal);
			}
			
			if (categoriaPET != null) {
				incluirCategoriaPet(categoriaPET);
			}
		}
	}

	protected Categoria getCategoriaPET() {
		return getCategoriaService().buscarUmaCategoria("PET");
	}

	protected Categoria getCategoriaNormal() {
		return getCategoriaService().buscarUmaCategoria("NORMAL");
	}

	protected abstract void incluirCategoriaNormal(Categoria categoriaNormal);
	protected abstract void incluirCategoriaPet(Categoria categoriaPET);

	public CategoriaService getCategoriaService() {
		return categoriaService;
	}

}
