import { defineStore } from 'pinia'
import { useDataStore } from '@/stores/dataStore'
import { usePiyangoDataStore } from '../stores/piyangoDataStore'
import { useUsersStore } from '@/stores/usersStore'

export const usePiyangoServices = defineStore('piyangoServices', () => {
  const dataStore = useDataStore()
  const piyangoDataStore = usePiyangoDataStore()
  const usersStore = useUsersStore()

  const RemoveIncelemeBekleniyor = () => {
    let ind = piyangoDataStore.piyangoOnayDurumlari.findIndex((p) => p.id === 8)
    if (ind >= 0) piyangoDataStore.piyangoOnayDurumlari.splice(ind, 1)
  }

  const GetKatilimciTeslimYontemiList = async () => {
    if (piyangoDataStore.katilimciTeslimYontemi.length === 0) {
      piyangoDataStore.katilimciTeslimYontemi = await dataStore.dataGet(
        'KatilimciListesiTeslimYontemi'
      )
    }
  }

  const GetCekilisYontemiList = async () => {
    if (piyangoDataStore.cekilisYontemi.length === 0) {
      let data = await dataStore.dataGet('CekilisYontemi')
      piyangoDataStore.cekilisYontemi = data.data
    }
  }

  const GetParaBirimleri = async () => {
    if (piyangoDataStore.paraBirimleri.length === 0) {
      let data = await dataStore.dataGet('ParaBirimi')
      piyangoDataStore.paraBirimleri = data
    }
  }

  const GetPiyangoAmaclariList = async () => {
    if (piyangoDataStore.piyangoAmaclari.length === 0) {
      let data = await dataStore.dataGet('PiyangoAmac')
      piyangoDataStore.piyangoAmaclari = data
    }
  }

  const GetPiyangoOnayDurumList = async () => {
    if (piyangoDataStore.piyangoOnayDurumlari.length === 0) {
      let data = await dataStore.dataGet('OnayDurumuIslemTipi')
      data.sort((a: Record<string, any>, b: Record<string, any>) => a.order - b.order)
      piyangoDataStore.piyangoOnayDurumlari = data
      if (usersStore.isPanelUser) RemoveIncelemeBekleniyor()
    }
  }
  const GetPiyangoTeminatDurumList = async () => {
    if (piyangoDataStore.piyangoTeminatDurumlari.length === 0) {
      /*
        1: Açık
        2: İade
        3: Zaman Aşımı İade
      */
      let data = await dataStore.dataGet('TeminantStates/Durumlar')
      piyangoDataStore.piyangoTeminatDurumlari = data
    }
  }
  const GetPiyangoTeminatTurleriList = async () => {
    if (piyangoDataStore.piyangoTeminatTurleri.length === 0) {
      let data = await dataStore.dataGet('TeminantStates/TeminantChildType')
      piyangoDataStore.piyangoTeminatTurleri = data
    }
  }
  const GetPiyangoTeminatParaBirimleriList = async () => {
    if (piyangoDataStore.piyangoTeminatParaBirimleri.length === 0) {
      let data = await dataStore.dataGet('TeminantStates/TeminatParentType')
      piyangoDataStore.piyangoTeminatParaBirimleri = data
    }
  }
  return {
    GetKatilimciTeslimYontemiList,
    GetCekilisYontemiList,
    GetParaBirimleri,
    GetPiyangoAmaclariList,
    GetPiyangoOnayDurumList,
    GetPiyangoTeminatDurumList,
    GetPiyangoTeminatTurleriList,
    GetPiyangoTeminatParaBirimleriList
  }
})
