<template>
    <div class="row">
        <div class="col">
            <loading-component style="height: 200px; top: 0;" key="1" color="success" v-show="isLoading"></loading-component>
            <div v-if="!isLoading">
                <div class="row">
                    <div class="col-8">
                        <div class="row p-b-5 b-b b-grey m-b-10 m-l-0 m-r-0">
                            <div class="col no-padding">
                                <h6>Wallet Transaction History</h6>
                            </div>
                        </div>
                        <div class="row m-t-10 m-b-10">
                            <div class="col">
                                <div class="d-flex align-items-center h-100">
                                    <span class="btn btn-md fs-11 bg-primary text-white fs-12 m-r-5" :class="[{'bg-primary-darker': showingPreciseAmount}]" @click="showingPreciseAmount=!showingPreciseAmount">{{ showingPreciseAmount ? 'Showing Precise Wallet Transaction' : 'Show Precise Wallet Transaction'}}</span>
                                    <a v-if="company" :href="route('wallet.details-export', company.reference, showingPreciseAmount)" target="_blank" class="btn btn-md btn-primary fs-11"><i class="fa fa-download m-r-5"></i>{{ showingPreciseAmount ? 'Download Precise Transaction' : 'Download Transaction'}}</a>
                                </div>
                            </div>
                            <div class="col-2">
                                <validation-wrapper-component selectable :validator="$v.showingTransactionCount">
                                    <label>Showing Rows</label>
                                    <select-component :options="[5, 10, 20, 30, 50]" v-model="showingTransactionCount"></select-component>
                                </validation-wrapper-component>
                            </div>
                        </div>
                        <div v-show="!showingPreciseAmount">
                            <customer-transaction-component :deciamls="2" :wallet_id="wallet_id" :showingTransactionCount="showingTransactionCount"></customer-transaction-component>
                        </div>
                        <div v-show="showingPreciseAmount">
                            <customer-transaction-component :deciamls="5" :wallet_id="wallet_id" :showingTransactionCount="showingTransactionCount"></customer-transaction-component>
                        </div>
                    </div>
                    <div class="col-3 m-l-15">
                        <wallet-component :data="company" :creditable=true></wallet-component>
                        <div class="row m-t-20">
                            <div class="col">
                                <div class="row m-b-10">
                                    <div class="col">
                                        <div class="font-head fs-10 all-caps">Top Up Records</div>
                                    </div>
                                </div>
                                <div class="row" v-if="company.wallet">
                                    <div class="col">
                                        <wallet-top-up-history-component v-for="item in company.wallet.top_up_records" v-bind:key="item.id" :data="item"></wallet-top-up-history-component>
                                    </div>
                                </div>
                                <div class="row align-items-center justify-content-center p-t-50 p-b-50" v-if="!company.wallet || !company.wallet.top_up_records.length">
                                    <div class="col-10">
                                        <div class="row align-items-center justify-content-center hint-text">
                                            <div class="col-4 hint-text"><img src="/images/not-found-illustration.png" class="w-100 hint-text"></div>
                                        </div>
                                        <div class="row text-center">
                                            <div class="col">
                                                <div class="row m-t-20">
                                                    <div class="col">
                                                        <p class="all-caps no-margin fs-11" style="letter-spacing: 2px;">Nothing To Show Here</p>
                                                    </div>
                                                </div>
                                                <div class="row m-t-5 align-items-center justify-content-center">
                                                    <div class="col">
                                                        <small class="fs-9 muted all-caps font-lato" style="letter-spacing: 2px">There is no results found, Try adjusting your filters to find what you are looking for.</small>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>
<script>
export default {
    props: {
        id: {
            type: Number,
            required: true
        },
        wallet_id: {
            type: Number,
            required: true
        }
    },
    data(){
        return {
            section: 'customerTransactionSection',
            isLoading: true,
            company: null,
            showingPreciseAmount: false,
            showingTransactionCount: 10,
            attention: false
        }
    },
    computed: {
        pendingQueue () {
            return this.$store.getters.isInCompleteQueue(this.section);
        }
    },
    watch: {
        pendingQueue(inComplete){
            if(inComplete){
                this.fetchCompany();
            }
        }
    },
    validations: {
        showingTransactionCount: {  },
    },
    created(){
        this.$store.dispatch('updateListQueue', {'name': this.section});
    },
    methods: {
        fetchCompany(){
            this.isLoading = true;
            this.submit(route('api.company.show', this.id), 'get', this.section, false, false)
        },
        successHandler(response){
            this.isLoading = false;
            this.company = response.payload.data;
        }
    }
}
</script>
