import { defineStore } from 'pinia'
import { useDataStore } from '@/stores/dataStore'
import { usePiyangoStore } from '../stores/piyangoStore'
import { usePiyangoDosyaKapamaStore } from '../stores/piyangoDosyaKapamaStore'
import { usePiyangoDosyaKapamaValidationStore } from '../validation/piyangoDosyaKapamaValidationStore'

export const usePiyangoDosyaKapamaService = defineStore(
  'piyangoDosyaKapamaService',
  () => {
    const dataStore = useDataStore()
    const piyangoStore = usePiyangoStore()
    const piyangoDosyaKapamaStore = usePiyangoDosyaKapamaStore()
    const piyangoDosyaKapamaValidationStore = usePiyangoDosyaKapamaValidationStore()

    const GetDosyaKapama = async () => {
      let data: Record<string, any> | any = await dataStore.dataGet(
        'TeminatIadeEvrakKontrol/' + piyangoStore.selectedLottery
      )

      if (data !== 'errorfalse' || data.data.id === undefined) {
        Object.assign(piyangoDosyaKapamaStore.dosyaKapamaData, data)
        Object.assign(piyangoDosyaKapamaStore.safeDosyaKapamaData, data)
        piyangoDosyaKapamaStore.isNew = false
        setTimeout(() => {
          piyangoDosyaKapamaStore.loaded = true
        }, 30)
      } else {
        piyangoDosyaKapamaStore.isNew = true
      }
    }

    const SaveDosyaKapama = async () => {
      let dt: any
      const localData = Object.assign({}, piyangoDosyaKapamaStore.dosyaKapamaData)
      if (localData.cekilisId === undefined)
        localData.cekilisId = piyangoStore.selectedLottery

      if (piyangoDosyaKapamaStore.isNew) {
        dt = await dataStore.dataPost('TeminatIadeEvrakKontrol', {
          data: localData
        })
      } else {
        dt = await dataStore.dataPut('TeminatIadeEvrakKontrol/' + localData.id, {
          data: localData
        })
      }
      if (dt !== 'errorfalse') {
        piyangoDosyaKapamaStore.isUpdate = false
        await GetDosyaKapama()
      }
    }

    const SaveDosyaKapamaIkramiye = async () => {
      if (piyangoDosyaKapamaValidationStore.IkramiyeFormCheck()) {
        let dt: any
        const localData = Object.assign(
          {},
          piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData
        )
        if (localData.cekilisId === undefined)
          localData.cekilisId = piyangoStore.selectedLottery

        if (!piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate) {
          dt = await dataStore.dataPost('TeminatIadeEvrak', {
            data: localData
          })
        } else {
          dt = await dataStore.dataPut('TeminatIadeEvrak/' + localData.id, {
            data: localData
          })
        }
        if (dt !== 'errorfalse') {
          piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate = false
          piyangoDosyaKapamaStore.dosyaKapamaIkramiyePanel = false
          piyangoDosyaKapamaStore.dosyaKapamaIkramiyeListesiRefresh = true
        }
      } else {
        piyangoDosyaKapamaValidationStore.isIkramiyeFormValid = true
      }
    }

    return { GetDosyaKapama, SaveDosyaKapama, SaveDosyaKapamaIkramiye }
  }
)
