<template>
    <div class="block ml-3 mr-3 is-max-widescreen is-max-desktop">
        <comunes-tabs-secciones :tabs="tabs" :tabInicial="tabActiva"></comunes-tabs-secciones>
        <div class="block" id="pedidos-seccion"
            :class="seccionActiva === 'pedidos-seccion' ? 'is-active' : 'is-hidden'">
            <div class="block pb-6" id="pedidos-tabla-y-dropdown" v-if="hayPedidos">
                <admin-dropdown-descargar
                    :gdc_id="gdc.id">
                </admin-dropdown-descargar>
                <admin-tabla-pedidos
                    :gdc="this.gdc"
                ></admin-tabla-pedidos>
            </div>
            <p class="has-text-centered" v-else>
                Todavía no hay ningún pedido para administrar.
            </p>
        </div>
        <div class="block pb-6" id="caracteristicas-seccion"
             :class="seccionActiva === 'caracteristicas-seccion' ? 'is-active' : 'is-hidden'">
            <admin-caracteristicas-opcionales>
            </admin-caracteristicas-opcionales>
        </div>
    </div>
</template>

<script>
import CaracteristicasOpcionales from "./CaracteristicasOpcionales.vue";
import TabsSecciones from "../comunes/TabsSecciones.vue";
import DropdownDescargar from "./DropdownDescargar.vue";
import TablaPedidos from "./TablaPedidos.vue";
import TablaBonos from "./TablaBonos.vue";
import axios from "axios";
export default {
    components: {
        CaracteristicasOpcionales,
        TabsSecciones,
        DropdownDescargar,
        TablaPedidos,
        TablaBonos,
    },
    data() {
        return {
            gdc: undefined,
            tabs: [{ id: "pedidos", nombre: "Pedidos" },
                   { id: "caracteristicas", nombre: "Caracteristicas opcionales" }],
            tabActiva: "pedidos",
            seccionActiva: "pedidos-seccion",
        }
    },
    computed: {
        hayPedidos: function() {
            return this.gdc && this.gdc.pedidos.length !== 0
        },
        hayAprobados: function() {
            return this.gdc && this.gdc.pedidos.filter(p => p.aprobado).length > 0
        }
    },
    methods: {
        setSeccionActiva(tabId) {
            this.tabActiva = tabId;
            this.seccionActiva = tabId + "-seccion";
        },
        actualizar() {
            axios.get('/api/grupos-de-compra/' + this.$root.gdc)
                .then(response => {
                    this.gdc = response.data.data;
                    console.log(this.gdc);
                })
        }
    },
    async mounted() {
        Event.$on('sync-aprobacion', (_) => {
            this.actualizar();
        });
        await new Promise(r => setTimeout(r, 1000));
        this.actualizar();
    },
}
</script>

<style>

</style>
