var FiltroDash = SuperWidget.extend({

    lojasCarregadas:[],

    init: function(){

        console.log("FiltroDash carregado");

        this.carregarLojas();

    },

    bindings: {
        local:{
            'filtrar': ['click_filtrar']
        }
    },

    carregarLojas: function(){

        var self = this;
        var dataList = $("#filial_list_"+this.instanceId);

        $.ajax({

            url: "/api/public/ecm/dataset/search",
            type: "POST",
            contentType: "application/json",

            data: JSON.stringify({
                datasetId: "ds_lojas_api",
                constraints: [],
                fields: [],
                order: []
            }),

            success: function(response){

                var dados = response.content || [];
                self.lojasCarregadas = dados.map(function(loja){
                    return String(loja.LOJA || "").trim();
                }).filter(function(v){ return !!v; });

                self.lojasCarregadas.sort(function(a,b){
                    return a.localeCompare(b);
                });

                self.lojasCarregadas.forEach(function(loja){

                    dataList.append(
                        '<option value="'+loja+'"></option>'
                    );

                });

            }

        });

    },

    filtrar:function(){

        console.log("Filtrar clicado");

        var lojaDigitada = String($("#filial_"+this.instanceId).val() || "").trim();

        var filtros = {

            dataInicio: $("#dtInicio_"+this.instanceId).val(),
            dataFim: $("#dtFim_"+this.instanceId).val(),
            loja: this.resolverLoja(lojaDigitada)

        };

        console.log("Filtros enviados:", filtros);

        window.dispatchEvent(
            new CustomEvent("dashboardFiltro",{detail:filtros})
        );

    },

    resolverLoja:function(lojaDigitada){
        if(!lojaDigitada){
            return "";
        }

        var buscado = lojaDigitada.toUpperCase();
        if(buscado === "TODAS" || buscado === "TODOS"){
            return "";
        }
        var lojas = this.lojasCarregadas || [];

        for(var i=0;i<lojas.length;i++){
            if(lojas[i].toUpperCase() === buscado){
                return lojas[i];
            }
        }

        for(var j=0;j<lojas.length;j++){
            if(lojas[j].toUpperCase().indexOf(buscado) >= 0){
                return lojas[j];
            }
        }

        return lojaDigitada;

    }

});
