import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { useValidationStore } from '@/stores/validationStore'
import { usePiyangoItirazStore } from '../stores/piyangoItirazStore'

export const usePiyangoItirazValidationStore = defineStore(
  'piyangoItirazValidationStore',
  () => {
    const piyangoItirazStore = usePiyangoItirazStore()
    const validationStore = useValidationStore()

    const formChanged = ref<boolean>(false)
    const isFormValid = ref<boolean>(true)
    const invalidTexts = reactive<Record<string, any>>({})

    const FormCheck = (): boolean => {
      Object.assign(invalidTexts, {})

      validationStore.IsFieldEmpty(
        piyangoItirazStore.piyangoItirazForm,
        invalidTexts,
        'surecTipiId',
        'Süreç tipini seçmelisiniz.'
      )

      validationStore.IsFieldEmpty(
        piyangoItirazStore.piyangoItirazForm,
        invalidTexts,
        'durum',
        'Süreç durumunu seçmelisiniz.'
      )

      validationStore.IsFieldEmpty(
        piyangoItirazStore.piyangoItirazForm,
        invalidTexts,
        'itirazTarihi',
        'İtiraz tarihini seçmelisiniz.'
      )

      validationStore.IsFieldEmpty(
        piyangoItirazStore.piyangoItirazForm,
        invalidTexts,
        'itirazEden',
        'İtiraz eden kişi/kurumun adını yazmalısınız.'
      )

      validationStore.IsFieldEmpty(
        piyangoItirazStore.piyangoItirazForm,
        invalidTexts,
        'aciklama',
        'Açıklama alanı boş bırakılamaz.'
      )

      validationStore.IsFieldEmpty(
        piyangoItirazStore.piyangoItirazForm,
        invalidTexts,
        'dosya',
        'Dosya yüklemelisiniz.'
      )
      isFormValid.value = Object.keys(invalidTexts).length === 0
      return isFormValid.value
    }

    return {
      formChanged,
      isFormValid,
      invalidTexts,
      FormCheck
    }
  }
)
