import { defineStore } from 'pinia'
import { useDataStore } from '@/stores/dataStore'
import { usePiyangoStore } from '../stores/piyangoStore'
import { usePiyangoItirazStore } from '../stores/piyangoItirazStore'
import { usePiyangoItirazValidationStore } from '../validation/piyangoItirazValidationStore'

export const usePiyangoItirazService = defineStore('piyangoItirazService', () => {
  const dataStore = useDataStore()
  const piyangoStore = usePiyangoStore()
  const piyangoItirazStore = usePiyangoItirazStore()
  const piyangoItirazValidationStore = usePiyangoItirazValidationStore()

  const SaveItiraz = async () => {
    if (piyangoItirazValidationStore.FormCheck()) {
      let data: any
      const formData = new FormData()
      formData.append('itirazTarihi', piyangoItirazStore.piyangoItirazForm.itirazTarihi)
      formData.append('itirazEden', piyangoItirazStore.piyangoItirazForm.itirazEden)
      formData.append('aciklama', piyangoItirazStore.piyangoItirazForm.aciklama)
      formData.append('durum', piyangoItirazStore.piyangoItirazForm.durum)
      formData.append('dosya', piyangoItirazStore.piyangoItirazForm.dosya)
      formData.append('cekilisId', String(piyangoStore.selectedLottery))
      formData.append('surecTipiId', piyangoItirazStore.piyangoItirazForm.surecTipiId)

      if (!piyangoItirazStore.isUpdate) {
        data = await dataStore.dataPost('Itiraz', {
          data: formData,
          headers: {
            'Content-Type': 'multipart/form-data'
          }
        })
      } else {
        data = await dataStore.dataPut(
          'Itiraz/' + piyangoItirazStore.piyangoItirazForm.id,
          {
            data: formData,
            headers: {
              'Content-Type': 'multipart/form-data'
            }
          }
        )
      }

      if (data !== 'errorfalse') {
        piyangoItirazStore.refreshList = true
        piyangoItirazStore.itirazPanel = false
        piyangoItirazValidationStore.formChanged = false
      }
    } else {
      piyangoItirazValidationStore.isFormValid = true
    }
  }
  return { SaveItiraz }
})
