import { defineStore } from 'pinia'
import { useDataStore } from '@/stores/dataStore'
import { usePiyangoStore } from '../stores/piyangoStore'
import { usePiyangoCekilisTutanagiStore } from '../stores/piyangoCekilisTutanagiStore'
import { usePiyangoCekilisTutanagiValidationStore } from '../validation/piyangoCekilisTutanagiValidationStore'

export const usePiyangoCekilisTutanagiService = defineStore('piyangoCekilisTutanagiService', () => {
  const dataStore = useDataStore()
  const piyangoStore = usePiyangoStore()
  const cekilisTutanagiStore = usePiyangoCekilisTutanagiStore()
  const cekilisTutanagiValidationStore = usePiyangoCekilisTutanagiValidationStore()

  const GetDocumentList = async () => {
    cekilisTutanagiStore.cekilisTutanagiList.splice(
      0,
      cekilisTutanagiStore.cekilisTutanagiList.length
    )

    let dt = await dataStore.dataGet('CekilisTutanak/Cekilis/' + piyangoStore.selectedLottery, {
      params: {
        pageSize: 50
      }
    })
    
    if (dt !== 'errorfalse') {
      const dataList = Array.isArray(dt) ? dt : (dt.data || [])
      cekilisTutanagiStore.cekilisTutanagiList.splice(
        0,
        cekilisTutanagiStore.cekilisTutanagiList.length,
        ...dataList
      )      
    }
    setTimeout(() => {
      cekilisTutanagiStore.loaded = true
    }, 30)
  }

  const SaveDocument = async () => {
    if (cekilisTutanagiValidationStore.FormCheck()) {
      const formData = new FormData()
      formData.append('dosya', cekilisTutanagiStore.cekilisTutanagiForm.dosya)
      formData.append('dokumanAdi', cekilisTutanagiStore.cekilisTutanagiForm.dokumanAdi)
      formData.append('cekilisId', String(piyangoStore.selectedLottery))
      let dt: any

      if (!cekilisTutanagiStore.isUpdate) {
        dt = await dataStore.dataPost('CekilisTutanak', {
          data: formData,
          headers: { 'Content-Type': 'multipart/form-data' }
        })
      } else {
        dt = await dataStore.dataPut(
          'CekilisTutanak/' + cekilisTutanagiStore.cekilisTutanagiForm.id,
          {
            data: formData,
            headers: { 'Content-Type': 'multipart/form-data' }
          }
        )
      }
      if (dt !== 'errorfalse') {
        await GetDocumentList()
        cekilisTutanagiStore.documentPanel = false
        cekilisTutanagiStore.isUpdate = false
      }
    } else {
      cekilisTutanagiValidationStore.isFormValid = true
    }
  }
  return { GetDocumentList, SaveDocument }
})

