<script setup>
const props = defineProps({
  userData: {
    type: Object,
    required: true,
  },
})
import { onBeforeMount, onMounted, onUnmounted, ref } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import { useStore } from 'vuex';

const store = useStore();
const router = useRouter();
const route = useRoute();
const editDialog = ref(false);
const deleteDialog = ref(false);
const search = ref('');
const appointmentId = ref('');
const defaultItem = ref({
  id: -1,
  avatar: '',
  name: '',
  email: '',
  dob: '',
  phone_no: '',
});

const editedItem = ref({ ...defaultItem.value });
const editedIndex = ref(-1);
const patientLabList = ref([]);
const isLoading = ref(false);

// Status options
const selectedOptions = [
  { text: 'Active', value: 1 },
  { text: 'InActive', value: 2 },
];

const refVForm = ref(null);

// Headers
const headers = [
  // { title: 'Appointment Id', key: 'id' },
  { title: 'Product Name', key: 'product_name' },
  { title: 'Lab Kit Name', key: 'lab_kit_name' },
  // { key: 'appointment_date', sortable: false, title: 'Date' },
  { key: 'status', title: 'Status' },
//  { title: 'ACTIONS', key: 'actions' },
];






const formatDate = (date) => {
  const messageDate = new Date(date);
  const options = {
    year: 'numeric',
    month: 'numeric',
    day: 'numeric',
    hour: 'numeric', // Change from '2-digit' to 'numeric'
    minute: '2-digit',
    hour12: true, // Add hour12: true to get 12-hour format with AM/PM
  };
  const formattedDate = messageDate.toLocaleString('en-US', options).replace(/\//g, '-');
  return `${formattedDate} `;
};
// Fetch and process the patient meeting list
const getPatientLabList = async () => {
  //store.dispatch('updateIsLoading', true);
  //await store.dispatch('patientMeetingList', { id: route.params.id });
 // store.dispatch('updateIsLoading', false);

  let list = props.userData.labkit;
 
  patientLabList.value = list
  console.log(list);
};

// Lifecycle hooks
onBeforeMount(() => {});
onMounted(async () => {
  await getPatientLabList();
  
});
onUnmounted(() => {});
const historyDetail = (item, value) => {
    console.log('item',item.id ,value)
    if(value == 'notes')
    router.push('/admin/patient/meeting/notes/' + route.params.id + '/' + item.id);
    if(value == 'prescription')
    router.push('/admin/patient/meeting/prescription/' + route.params.id + '/' + item.id);
}
const menusVariant = [
  'primary'
];
const options = [
  {
    title: 'Notes',
    key: 'notes',
  },
  {
    title: 'Prescription',
    key: 'prescription',
  },
  
]
const getStatusColor = (status) => {
    switch (status) {
        case 'pending':
            return 'warning'; // Use Vuetify's warning color (typically yellow)
        case 'shipped':
            return '#45B8AC'; // Use Vuetify's primary color (typically blue)
        case 'delivered':
            return 'success';
        case 'returned':
            return 'red';
        case 'results':
            return 'blue';
        default:
            return 'grey'; // Use Vuetify's grey color for any other status
    }
};
</script>

<template>

  <v-row>
    <v-col cols="12" md="12" >
      <v-card title="Lab Kits">
        <v-card-text>
          <v-row>
            <v-col cols="12" offset-md="8" md="4">
              <v-text-field
                v-model="search"
                label="Search"
                placeholder="Search ..."
                append-inner-icon="ri-search-line"
                single-line
                hide-details
                dense
                outlined
              />
            </v-col>
          </v-row>
        </v-card-text>
        <v-data-table
          :headers="headers"
          :items="patientLabList"
          :search="search"
          :items-per-page="5"
          class="text-no-wrap"
        >
          <template #item.id="{ item }">{{ item.id }}</template>
          <template #item.provider_name="{ item }">
            <div class="d-flex flex-column ms-3">
                <router-link
                  :to="{ name: 'admin-provider-profile', params: { id: item.provider_id } }"
                  class="highlighted"
                >
              <span class="d-block font-weight-medium  text-truncate">{{ item.provider_name }}</span>
               </router-link>
            
            </div>
            </template>
            <template #item.status="{ item }">
          <VChip
            :color="getStatusColor(item.status)"
            density="comfortable"
          >
            {{ item.status}}
          </VChip>
        </template>
          <template #item.address="{ item }">{{ item.shipping_address1 }} <br/>{{ item.shipping_city }} {{ item.shipping_state }} {{ item.shipping_zipcode }}</template>
          <!-- Actions -->
          <template #item.actions="{ item }">
          <div class="demo-space-x">
          <VMenu
            v-for="menu in menusVariant"
            :key="menu"
          >
            <template #activator="{ props }">
              
                <i class="ri-more-2-line cursor-pointer" style="font-size: 32px;" v-bind="props"></i>
              
            </template>

            <v-list>
            <v-list-item
              v-for="opt in options"
              :key="opt.value"
              @click="historyDetail(item, opt.key)"
            >
              {{ opt.title }}
            </v-list-item>
          </v-list>
          </VMenu>
        </div>
            <!-- <div class="d-flex gap-1">
              <VBtn class="text-capitalize text-white" @click="historyDetail(item)"> Detail
                            </VBtn>
            </div> -->
          </template>
        </v-data-table>
      </v-card>  
    </v-col>
  </v-row>
</template>
