<template>
  <AdminLayout>
    <Breadcrumb currentPageText="Üye Detay" go="/uyeler/uye-liste" />
    <tabs :tabList="tabList" isUseRoute v-if="loaded">
      <template #uye-bilgileri>
        <tab-uye-bilgileri />
      </template>
      <template #yetkili-kurum>
        <tab-uye-yetkili-oldugu-kisi-kurum />
      </template>
      <template #piyangolar>
        <tab-uye-piyangolar />
      </template>
      <template #uye-loglari>
        <tab-uye-loglari />
      </template>
      <template #onay-durumu><tab-uye-onay-durumu /></template>
    </tabs>
  </AdminLayout>
</template>
<script setup lang="ts">
  import { ref, onBeforeMount, onBeforeUpdate, watch } from 'vue'
  import { useRoute } from 'vue-router'
  const route = useRoute()
  import { useGlobalStore } from '@/stores/globalStore'
  const globalStore = useGlobalStore()
  import { useUsersStore } from '@/stores/usersStore'
  const usersStore = useUsersStore()
  import { useDataStore } from '@/stores/dataStore'
  const dataStore = useDataStore()

  import AdminLayout from '@/layouts/AdminLayout.vue'
  import TabUyeBilgileri from '../components/TabUyeBilgileri.vue'
  import TabUyePiyangolar from '../components/TabUyePiyangolar.vue'
  import TabUyeYetkiliOlduguKisiKurum from '../components/TabUyeYetkiliOlduguKisiKurum.vue'
  import TabUyeLoglari from '../components/TabUyeLoglari.vue'
  import TabUyeOnayDurumu from '../components/TabUyeOnayDurumu.vue'
  const tabList = ref<Record<string, any>[]>([])
  const loaded = ref<boolean>(false)

  const CreateTabs = () => {
    tabList.value = []
    tabList.value.push({ text: 'Üye Bilgileri', id: 'uye-bilgileri' })
    if (
      usersStore.isPanelUser &&
      route.name !== 'Profil' &&
      (usersStore.isAraciFirma || globalStore.selCustomerType === 23)
    ) {
      let txt = usersStore.isPanelUser
        ? 'Yetkili Olduğu Kişi/Kurum'
        : 'Yetkili Olduğum Kişi/Kurum'
      tabList.value.push({ text: txt, id: 'yetkili-kurum' })
    }

    if (usersStore.isPanelUser && route.name !== 'Profil') {
      tabList.value.push(
        { text: 'Piyangolar', id: 'piyangolar' },
        { text: 'Üye Logları', id: 'uye-loglari' },
        { text: 'Onay Durumu', id: 'onay-durumu' }
      )
    }
  }
  onBeforeMount(async () => {
    usersStore.SetSelectedUser()
    let tip = await dataStore.dataGet(
      'Auth/uyedurumkontrol/' + usersStore.selectedUserId()
    )
    usersStore.userApproveId = tip.userIslemtipi

    CreateTabs()
    loaded.value = true
  })
  onBeforeUpdate(() => {
    CreateTabs()
  })

  watch(
    () => globalStore.selCustomerType,
    () => {
      CreateTabs()
    },
    {
      deep: true
    }
  )
</script>
