<template>
    <div class="row">
        <div class="col">
            <div class="row" @keyup.enter="submitForm">
                <div class="col ml-md-3 ml-0 mt-md-0 mt-3 bg-white padding-15">
                    <loading-component style="height: 200px; top: 0;" key="1" color="success" v-show="$store.getters.isLoading(section)"></loading-component>
                    <div class="row" v-show="!$store.getters.isLoading(section)" v-if="!returnData">
                        <div class="col">
                            <div class="row m-b-10">
                                <div class="col">
                                    <div class="font-heading fs-16 all-caps bold m-b-15">Upload Honey Trap Csv</div>
                                </div>
                            </div>
                            <error-message-component class="m-b-20" :error="error"></error-message-component>
                            <div class="row m-b-15">
                                <div class="col">
                                    <validation-wrapper-component selectable :validator="$v.segment_id">
                                        <label>Segment</label>
                                        <selectable-component :endpoint="route('api.segment.list')" section="segmentsListSection_" valueColumn="id" :labelColumn="['name']" v-model="segment_id"></selectable-component> 
                                    </validation-wrapper-component>
                                </div>
                            </div>
                            <div class="row">
                                <div class="col">
                                    <file-input-component :validator="$v.files" v-model="files">
                                        <template slot="label">
                                            <div class="font-heading fs-11 text-primary all-caps">Honey Trap Csv</div>
                                        </template>
                                    </file-input-component>
                                </div>
                            </div>
                            <div class="row m-t-20">
                                <div class="col">
                                    <div class="row">
                                        <div class="col">
                                            <button type="button" class="btn btn-block p-t-10 p-b-10 p-r-35 p-l-35 btn-success b-rad-none" @click="submitForm">Upload & Update</button>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div v-if="returnData">
                        <div class="font-heading fs-16 all-caps bold m-b-15">Uploaded Customer</div>
                        <table class="w-100 table table-bordered">
                            <tr class="thead-dark">
                                <th class="text-capitalize" v-for="key in returnDataKeys"> {{ key }}</th>
                            </tr>
                            <tr v-for="row in returnData">
                                <td v-for="col in row" :class="[{'text-danger': row['status'] == 'failed'}]">
                                    {{ col }}
                                </td>
                            </tr>
                        </table>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>

<script>
    import ModalFromHandler from '../../../general/mixins/modalFormHandler'
    import { required } from "vuelidate/lib/validators";
    export default {
        data(){
            return {
                files: [],
                parameters: {},
                segment_id: null,
                options: null,
                returnData: null
            }
        },
        validations: {
            files: {
                required
            },
            segment_id: {
                required
            }
        },
        computed: {
            returnDataKeys() {
                return Object.keys(Object.assign({}, this.returnData[0]))
            },
        },
        methods: {
            submitForm(){
                this.parameters = {
                    files: this.files,
                    segment_id: this.segment_id,
                };
                this.submit(this.route('api.honey_trap.upload'), 'post', this.section, true, false);
            },
            errorHandler(error){
                console.log(error);
            },
            successHandler(response) {
                this.returnData = response;
            },
        },
        mixins: [ModalFromHandler]

    }
</script>