import { defineStore } from 'pinia'
import { ref, reactive, computed } from 'vue'
import { useUsersStore } from '@/stores/usersStore'
import { useValidationStore } from '@/stores/validationStore'
import { useDateStore } from '@/stores/dateStore'
import { usePiyangoStore } from '../stores/piyangoStore'

export const usePiyangoValidationStore = defineStore('piyangoValidationStore', () => {
  const usersStore = useUsersStore()
  const piyangoStore = usePiyangoStore()
  const validationStore = useValidationStore()
  const dateStore = useDateStore()

  const isFormValid = ref<boolean>(true)
  const invalidTexts = reactive<Record<string, any>>({})
  const dateChanged = ref<boolean>(false)
  const baslangicTarihiMin = ref<Date>(new Date())

  //Kampanya Bitis Tarihi
  const kampanyaBitisDisabled = computed((): boolean => {
    return piyangoStore.lotteryData.baslangicTarihi === ''
  })

  const kampanyaBitisMin = computed((): Date => {
    let date = new Date(piyangoStore.lotteryData.baslangicTarihi)
    let year = date.getFullYear()
    let month = date.getMonth()
    let day = date.getDate()
    let time = date.getTime()
    let addHour = 1 * 60 * 60 * 1000
    let newDate = new Date(year, month, day)
    newDate.setTime(time + addHour)
    return newDate
  })
  const kampanyaBitisMax = computed((): Date => {
    let date = new Date(piyangoStore.lotteryData.baslangicTarihi)
    let year = date.getFullYear()
    let month = date.getMonth()
    let day = date.getDate()
    let newDate = new Date(year, month + 6, day)
    return newDate
  })
  //Cekilis Tarihi
  const cekilisTarihiDisabled = computed((): boolean => {
    return (
      piyangoStore.lotteryData.amacpiyangoId !== 2 &&
      (piyangoStore.lotteryData.bitisTarihi === '' ||
        piyangoStore.lotteryData.baslangicTarihi === '')
    )
  })
  const cekilisTarihiMin = computed((): Date => {
    if (piyangoStore.lotteryData.amacpiyangoId === 2) return new Date()
    else return piyangoStore.lotteryData.bitisTarihi
  })
  //Ilan Tarihi
  const ilanTarihiDisabled = computed((): boolean => {
    if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
      return (
        piyangoStore.lotteryData.bitisTarihi === '' ||
        piyangoStore.lotteryData.baslangicTarihi === '' ||
        piyangoStore.lotteryData.cekilisTarihi === ''
      )
    } else {
      return piyangoStore.lotteryData.cekilisTarihi === ''
    }
  })
  const ilanTarihiMin = computed((): Date => {
    return piyangoStore.lotteryData.cekilisTarihi
  })
  const ilanTarihiMax = computed((): Date => {
    let date = new Date(piyangoStore.lotteryData.cekilisTarihi)
    let year = date.getFullYear()
    let month = date.getMonth()
    let day = date.getDate()
    let newDate = new Date(year, month, day + 7)
    return newDate
  })
  //Ilan Tarihi 2
  const ilanTarihi2Disabled = computed((): boolean => {
    return (
      piyangoStore.lotteryData.cekilisTarihi === '' ||
      piyangoStore.lotteryData.ilantarihi === ''
    )
  })
  const ilanTarihi2Min = computed((): Date => {
    let date = new Date(piyangoStore.lotteryData.ilantarihi)
    let year = date.getFullYear()
    let month = date.getMonth()
    let day = date.getDate()
    let newDate = new Date(year, month, day + 1)
    return newDate
  })
  const ilanTarihi2Max = computed((): Date => {
    let date = new Date(piyangoStore.lotteryData.cekilisTarihi)
    let year = date.getFullYear()
    let month = date.getMonth()
    let day = date.getDate()
    let newDate = new Date(year, month, day + 7)
    return newDate
  })

  //Asıl Son Basvuru
  const asilSonBasvuruDisabled = computed((): boolean => {
    if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
      return (
        piyangoStore.lotteryData.baslangicTarihi === '' ||
        piyangoStore.lotteryData.bitisTarihi === '' ||
        piyangoStore.lotteryData.cekilisTarihi === '' ||
        piyangoStore.lotteryData.ilantarihi === ''
      )
    } else {
      return (
        piyangoStore.lotteryData.cekilisTarihi === '' ||
        piyangoStore.lotteryData.ilantarihi === '' ||
        piyangoStore.lotteryData.ilantarihi2 === ''
      )
    }
  })
  const asilSonBasvuruMin = computed((): Date => {
    if (piyangoStore.lotteryData.amacpiyangoId !== 2)
      return piyangoStore.lotteryData.ilantarihi
    else return piyangoStore.lotteryData.ilantarihi2
  })

  const asilSonBasvuruMax = computed((): Date => {
    let selectDate =
      piyangoStore.lotteryData.amacpiyangoId !== 2
        ? piyangoStore.lotteryData.ilantarihi
        : piyangoStore.lotteryData.ilantarihi2
    let date = new Date(selectDate)
    let year = date.getFullYear()
    let month = date.getMonth()
    let day = date.getDate()
    let newDate = new Date(year, month, day + 15)
    return newDate
  })
  //Yedek Son Basvuru
  const yedekSonBasvuruDisabled = computed((): boolean => {
    return (
      piyangoStore.lotteryData.baslangicTarihi === '' ||
      piyangoStore.lotteryData.bitisTarihi === '' ||
      piyangoStore.lotteryData.cekilisTarihi === '' ||
      piyangoStore.lotteryData.ilantarihi === '' ||
      piyangoStore.lotteryData.asilSonBasvuruTarihi === ''
    )
  })
  const yedekSonBasvuruMin = computed((): Date => {
    return piyangoStore.lotteryData.asilSonBasvuruTarihi
  })
  const yedekSonBasvuruMax = computed((): Date => {
    let date = new Date(piyangoStore.lotteryData.asilSonBasvuruTarihi)
    let year = date.getFullYear()
    let month = date.getMonth()
    let day = date.getDate()
    let newDate = new Date(year, month, day + 15)
    return newDate
  })
  //Ikramiye Son Teslim
  const ikramiyeTeslimDisabled = computed((): boolean => {
    if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
      return (
        piyangoStore.lotteryData.baslangicTarihi === '' ||
        piyangoStore.lotteryData.cekilisTarihi === ''
      )
    } else {
      return piyangoStore.lotteryData.cekilisTarihi === ''
    }
  })
  const ikramiyeTeslimMin = computed((): Date => {
    var date: Date = new Date()

    if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
      date = new Date(piyangoStore.lotteryData.yedekSonBasvuruTarihi)
    } else {
      date = new Date(piyangoStore.lotteryData.asilSonBasvuruTarihi)
    }
    var year = date.getFullYear()
    var month = date.getMonth()
    var day = date.getDate()

    let newDate = new Date(year, month, day + 1)
    return newDate
  })
  const ikramiyeTeslimMax = computed((): Date => {
    var date: Date = new Date()

    if (!piyangoStore.isLotteryForCharity) {
      date = new Date(piyangoStore.lotteryData.baslangicTarihi)
    } else {
      if (
        piyangoStore.lotteryFirstApproveDate === '' ||
        piyangoStore.lotteryFirstApproveDate === null
      ) {
        date = new Date(piyangoStore.lotteryCreationDate)
      } else {
        date = new Date(piyangoStore.lotteryFirstApproveDate)
      }
    }

    var year = date.getFullYear()
    var month = date.getMonth()
    var day = date.getDate()

    let newDate = new Date(year + 1, month, day)
    return newDate
  })

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

    validationStore.IsFieldEmpty(
      piyangoStore.lotteryData,
      invalidTexts,
      'baslik',
      'Başlık alanı boş bırakılamaz.'
    )

    validationStore.IsFieldEmpty(
      piyangoStore.lotteryData,
      invalidTexts,
      'amacpiyangoId',
      'Piyangoyu hangi amaçla düzenlediğinizi seçmelisiniz.'
    )
    if (!validationStore.checkEmpty(piyangoStore.lotteryData.amacpiyangoId)) {
      if (
        ((!usersStore.isVakifDernek &&
          !usersStore.isAraciFirma &&
          !usersStore.isPanelUser) ||
          (usersStore.isPanelUser && piyangoStore.duzenleyenData.basvuruTipId !== 22)) &&
        piyangoStore.lotteryData.amacpiyangoId === 2
      ) {
        if (!usersStore.isPanelUser) piyangoStore.lotteryData.amacpiyangoId = null
        isFormValid.value = false
        invalidTexts.amacpiyangoId =
          'Gerçek Kişi ve Tüzel Kişiler için Yardım Amaçlı Piyango düzenlenemez. Lütfen başka bir amaç seçiniz.'
      }
    }

    if (
      (usersStore.isAraciFirma && !usersStore.isPanelUser) ||
      (usersStore.isPanelUser && piyangoStore.lotteryData.baglisirketId !== null)
    ) {
      validationStore.IsFieldEmpty(
        piyangoStore.lotteryData,
        invalidTexts,
        'baglisirketId',
        'Hangi kişi/kurum adına çekilişi düzenlediğiniz seçmelisiniz.'
      )

      if (!validationStore.checkEmpty(piyangoStore.lotteryData.amacpiyangoId)) {
        if (!validationStore.checkEmpty(piyangoStore.lotteryData.baglisirketId)) {
          if (
            piyangoStore.duzenleyenData.basvuruTipId !== 22 &&
            piyangoStore.lotteryData.amacpiyangoId === 2
          ) {
            if (!usersStore.isPanelUser) piyangoStore.lotteryData.amacpiyangoId = null
            isFormValid.value = false
            invalidTexts.amacpiyangoId =
              'Gerçek Kişi ve Tüzel Kişiler için Yardım Amaçlı Piyango düzenlenemez. Lütfen başka bir amaç seçiniz.'
          }
        }
      }
    }
    if (piyangoStore.lotteryData.amacpiyangoId !== 3) {
      validationStore.IsFieldEmpty(
        piyangoStore.lotteryData,
        invalidTexts,
        'kapsamIl',
        'Çekilişin hangi illeri kapsadığını seçmelisiniz.'
      )

      if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
        validationStore.IsFieldEmpty(
          piyangoStore.lotteryData,
          invalidTexts,
          'cekilisSartveSekilleri',
          'Lütfen katılma şartlarını belirtiniz.'
        )

        validationStore.IsFieldEmpty(
          piyangoStore.lotteryData,
          invalidTexts,
          'baslangicTarihi',
          'Kampanya başlangıç tarihi seçmelisiniz.'
        )
        if (
          !validationStore.checkEmpty(piyangoStore.lotteryData.baslangicTarihi) &&
          (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
        ) {
          let baslangicTarihi = dateStore.dateFormat({
            date: piyangoStore.lotteryData.baslangicTarihi,
            pattern: 'yy-mm-dd-t',
            splitTime: 'T',
            splitDate: '-'
          })
          let baslangicmin = dateStore.dateFormat({
            date: baslangicTarihiMin.value,
            pattern: 'yy-mm-dd-t',
            splitTime: 'T',
            splitDate: '-'
          })
          let baslangicmind = dateStore.dateFormat({
            date: baslangicTarihiMin.value,
            pattern: 'dd-mm-yy-t'
          })
          if (baslangicTarihi < baslangicmin) {
            isFormValid.value = false
            invalidTexts.baslangicTarihi = `Kampanya Başlangıç Tarihi ${baslangicmind} tarihinden büyük olmalıdır.`
          } else {
            delete invalidTexts.baslangicTarihi
          }
        }

        validationStore.IsFieldEmpty(
          piyangoStore.lotteryData,
          invalidTexts,
          'bitisTarihi',
          'Kampanya bitiş tarihi seçmelisiniz.'
        )
        if (
          !validationStore.checkEmpty(piyangoStore.lotteryData.bitisTarihi) &&
          (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
        ) {
          let bitisTarihi = dateStore.dateFormat({
            date: piyangoStore.lotteryData.bitisTarihi,
            pattern: 'yy-mm-dd-t',
            splitTime: 'T',
            splitDate: '-'
          })

          let bitismin = dateStore.dateFormat({
            date: kampanyaBitisMin.value,
            pattern: 'yy-mm-dd-t',
            splitTime: 'T',
            splitDate: '-'
          })
          let bitismax = dateStore.dateFormat({
            date: kampanyaBitisMax.value,
            pattern: 'yy-mm-dd-t',
            splitTime: 'T',
            splitDate: '-'
          })
          let bitismind = dateStore.dateFormat({
            date: kampanyaBitisMin.value,
            pattern: 'dd-mm-yy-t'
          })
          let bitismaxd = dateStore.dateFormat({
            date: kampanyaBitisMax.value,
            pattern: 'dd-mm-yy-t'
          })
          if (bitisTarihi < bitismin || bitisTarihi > bitismax) {
            isFormValid.value = false
            invalidTexts.bitisTarihi = `Kampanya Bitiş Tarihi ${bitismind} - ${bitismaxd} tarihleri arasında olmalıdır.`
          } else {
            delete invalidTexts.bitisTarihi
          }
        }

        if (
          !validationStore.checkEmpty(piyangoStore.lotteryData.bitisTarihi) &&
          !validationStore.checkEmpty(piyangoStore.lotteryData.baslangicTarihi)
        ) {
          if (
            piyangoStore.lotteryData.bitisTarihi <
            piyangoStore.lotteryData.baslangicTarihi
          ) {
            invalidTexts.baslangicTarihi = `Başlangıç tarihi bitiş tarihinden küçük olamaz.`
          } else {
            delete invalidTexts.baslangicTarihi
          }
        }
      }

      validationStore.IsFieldEmpty(
        piyangoStore.lotteryData,
        invalidTexts,
        'cekilisTarihi',
        'Çekilişin yapılacağı tarihi seçmelisiniz.'
      )

      if (
        !validationStore.checkEmpty(piyangoStore.lotteryData.cekilisTarihi) &&
        (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value)) &&
        !usersStore.isPanelUser
      ) {
        let cekilisTarihi = dateStore.dateFormat({
          date: piyangoStore.lotteryData.cekilisTarihi,
          pattern: 'yy-mm-dd-t',
          splitTime: 'T',
          splitDate: '-'
        })
        let cekilismin = dateStore.dateFormat({
          date: cekilisTarihiMin.value,
          pattern: 'yy-mm-dd-t',
          splitTime: 'T',
          splitDate: '-'
        })
        let cekilismind = dateStore.dateFormat({
          date: cekilisTarihiMin.value,
          pattern: 'dd-mm-yy-t'
        })
        if (cekilisTarihi < cekilismin) {
          isFormValid.value = false
          invalidTexts.cekilisTarihi = `Çekiliş Tarihi ${cekilismind} tarihinden büyük olmalıdır.`
        } else {
          delete invalidTexts.cekilisTarihi
        }
      }

      validationStore.IsFieldEmpty(
        piyangoStore.lotteryData,
        invalidTexts,
        'ilantarihi',
        'İlan tarihi seçmelisiniz.'
      )

      if (
        !validationStore.checkEmpty(piyangoStore.lotteryData.ilantarihi) &&
        (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
      ) {
        let ilanTarihi = dateStore.dateFormat({
          date: piyangoStore.lotteryData.ilantarihi,
          pattern: 'yy-mm-dd',
          splitDate: '-'
        })
        let ilanmin = dateStore.dateFormat({
          date: ilanTarihiMin.value,
          pattern: 'yy-mm-dd',
          splitDate: '-'
        })
        let ilanmax = dateStore.dateFormat({
          date: ilanTarihiMax.value,
          pattern: 'yy-mm-dd',
          splitDate: '-'
        })
        let ilanmind = dateStore.dateFormat({
          date: ilanTarihiMin.value,
          pattern: 'dd-mm-yy'
        })
        let ilanmaxd = dateStore.dateFormat({
          date: ilanTarihiMax.value,
          pattern: 'dd-mm-yy'
        })
        if (ilanTarihi < ilanmin || ilanTarihi > ilanmax) {
          isFormValid.value = false
          invalidTexts.ilantarihi = `İlan Tarihi ${ilanmind} - ${ilanmaxd} tarihleri arasında olmalıdır.`
        } else {
          delete invalidTexts.ilantarihi
        }
      }

      if (piyangoStore.lotteryData.amacpiyangoId === 2) {
        validationStore.IsFieldEmpty(
          piyangoStore.lotteryData,
          invalidTexts,
          'ilantarihi2',
          '2. İlan tarihi seçmelisiniz.'
        )

        if (
          !validationStore.checkEmpty(piyangoStore.lotteryData.ilantarihi2) &&
          (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
        ) {
          let ilanTarihi2 = dateStore.dateFormat({
            date: piyangoStore.lotteryData.ilantarihi2,
            pattern: 'yy-mm-dd',
            splitDate: '-'
          })
          let ilan2min = dateStore.dateFormat({
            date: ilanTarihi2Min.value,
            pattern: 'yy-mm-dd',
            splitDate: '-'
          })
          let ilan2max = dateStore.dateFormat({
            date: ilanTarihi2Max.value,
            pattern: 'yy-mm-dd',
            splitDate: '-'
          })
          let ilan2mind = dateStore.dateFormat({
            date: ilanTarihi2Min.value,
            pattern: 'dd-mm-yy'
          })
          let ilan2maxd = dateStore.dateFormat({
            date: ilanTarihi2Max.value,
            pattern: 'dd-mm-yy'
          })
          if (ilan2min > ilan2max) {
            isFormValid.value = false
            invalidTexts.ilantarihi2 = `Lütfen 1. ilan tarihini daha erken bir tarih ile değiştiriniz. 2. İlan tarihi 1. ilan tarihinden en az 1 gün sonra olabilir`
          } else {
            if (ilanTarihi2 < ilan2min || ilanTarihi2 > ilan2max) {
              isFormValid.value = false
              invalidTexts.ilantarihi2 = `2. İlan Tarihi ${ilan2mind} - ${ilan2maxd} tarihleri arasında olmalıdır.`
            } else {
              delete invalidTexts.ilantarihi2
            }
          }
        }
      }

      validationStore.IsFieldEmpty(
        piyangoStore.lotteryData,
        invalidTexts,
        'asilSonBasvuruTarihi',
        'Asıl Talihliler için son başvuru tarihi seçmelisiniz.'
      )

      if (
        !validationStore.checkEmpty(piyangoStore.lotteryData.asilSonBasvuruTarihi) &&
        (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
      ) {
        let asilTarih = dateStore.dateFormat({
          date: piyangoStore.lotteryData.asilSonBasvuruTarihi,
          pattern: 'yy-mm-dd',
          splitDate: '-'
        })
        let asilmin = dateStore.dateFormat({
          date: asilSonBasvuruMin.value,
          pattern: 'yy-mm-dd',
          splitDate: '-'
        })
        let asilmax = dateStore.dateFormat({
          date: asilSonBasvuruMax.value,
          pattern: 'yy-mm-dd',
          splitDate: '-'
        })
        if (asilTarih < asilmin || asilTarih > asilmax) {
          isFormValid.value = false
          invalidTexts.asilSonBasvuruTarihi = `Asıl Talihli son başvuru tarihi çekiliş sonucunun ilan ve tebliğ edildiği tarihten itibaren on beş gün içerisinde olmalıdır.`
        } else {
          delete invalidTexts.asilSonBasvuruTarihi
        }
      }

      if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
        validationStore.IsFieldEmpty(
          piyangoStore.lotteryData,
          invalidTexts,
          'yedekSonBasvuruTarihi',
          'Yedek talihliler için son başvuru tarihi seçmelisiniz.'
        )

        if (
          !validationStore.checkEmpty(piyangoStore.lotteryData.yedekSonBasvuruTarihi) &&
          (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
        ) {
          let yedekTarih = dateStore.dateFormat({
            date: piyangoStore.lotteryData.yedekSonBasvuruTarihi,
            pattern: 'yy-mm-dd',
            splitDate: '-'
          })
          let yedekmin = dateStore.dateFormat({
            date: yedekSonBasvuruMin.value,
            pattern: 'yy-mm-dd',
            splitDate: '-'
          })
          let yedekmax = dateStore.dateFormat({
            date: yedekSonBasvuruMax.value,
            pattern: 'yy-mm-dd',
            splitDate: '-'
          })
          if (yedekTarih < yedekmin || yedekTarih > yedekmax) {
            isFormValid.value = false
            invalidTexts.yedekSonBasvuruTarihi = `Yedek Talihli Son Başvuru Tarihi, asıl talihliyi takip eden on beş gün içerisinde olmalıdır.`
          } else {
            delete invalidTexts.yedekSonBasvuruTarihi
          }
        }
      }

      validationStore.IsFieldEmpty(
        piyangoStore.lotteryData,
        invalidTexts,
        'ikramiyeTeslimTarihi',
        'İkramiyelerin teslim edileceği tarihi seçmelisiniz.'
      )

      if (
        !validationStore.checkEmpty(piyangoStore.lotteryData.ikramiyeTeslimTarihi) &&
        (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
      ) {
        let ikramiyeTeslimTarih = dateStore.dateFormat({
          date: piyangoStore.lotteryData.ikramiyeTeslimTarihi,
          pattern: 'yy-mm-dd',
          splitDate: '-'
        })
        let ikramiyemin = dateStore.dateFormat({
          date: ikramiyeTeslimMin.value,
          pattern: 'yy-mm-dd',
          splitDate: '-'
        })
        let ikramiyemax = dateStore.dateFormat({
          date: ikramiyeTeslimMax.value,
          pattern: 'yy-mm-dd',
          splitDate: '-'
        })
        let ikramiyemind = dateStore.dateFormat({
          date: ikramiyeTeslimMin.value,
          pattern: 'dd-mm-yy'
        })
        let ikramiyemaxd = dateStore.dateFormat({
          date: ikramiyeTeslimMax.value,
          pattern: 'dd-mm-yy'
        })
        if (ikramiyeTeslimTarih < ikramiyemin || ikramiyeTeslimTarih > ikramiyemax) {
          isFormValid.value = false
          invalidTexts.ikramiyeTeslimTarihi = `İkramiye Son Teslim Tarihi ${ikramiyemind} - ${ikramiyemaxd} tarihleri arasında olmalıdır.`
        } else {
          delete invalidTexts.ikramiyeTeslimTarihi
        }
      }

      validationStore.IsFieldEmpty(
        piyangoStore.lotteryData,
        invalidTexts,
        'ilanEdilecekGazete',
        'İlan edilecek gazete belirtmelisiniz.'
      )
      validationStore.IsFieldEmpty(
        piyangoStore.lotteryData,
        invalidTexts,
        'ilId',
        'Lütfen il seçiniz'
      )
      validationStore.IsFieldEmpty(
        piyangoStore.lotteryData,
        invalidTexts,
        'ilceId',
        'Lütfen ilçe seçiniz'
      )
      validationStore.IsFieldEmpty(
        piyangoStore.lotteryData,
        invalidTexts,
        'adres',
        'Adres alanı boş bırakılamaz'
      )

      if (!piyangoStore.CheckForYardimAmacli()) {
        validationStore.IsFieldEmpty(
          piyangoStore.lotteryData,
          invalidTexts,
          'katilimListesi',
          'Katılım Listesi için açıklamaları giriniz.'
        )
        validationStore.IsFieldEmpty(
          piyangoStore.lotteryData,
          invalidTexts,
          'katilimciListesiTeslimYontemiId',
          'Katılım listesini nasıl yükleyeceğiniz belirtiniz.'
        )
      }

      validationStore.IsFieldEmpty(
        piyangoStore.lotteryData,
        invalidTexts,
        'cekilisYontemiId',
        'Çekiliş yönteminizi belirtiniz.'
      )
    }
    isFormValid.value = Object.keys(invalidTexts).length === 0
    return isFormValid.value
  }

  return {
    isFormValid,
    invalidTexts,
    dateChanged,
    baslangicTarihiMin,
    kampanyaBitisDisabled,
    kampanyaBitisMin,
    kampanyaBitisMax,
    cekilisTarihiDisabled,
    cekilisTarihiMin,
    ilanTarihiDisabled,
    ilanTarihiMin,
    ilanTarihiMax,
    ilanTarihi2Disabled,
    ilanTarihi2Min,
    ilanTarihi2Max,
    asilSonBasvuruDisabled,
    asilSonBasvuruMin,
    asilSonBasvuruMax,
    yedekSonBasvuruDisabled,
    yedekSonBasvuruMin,
    yedekSonBasvuruMax,
    ikramiyeTeslimDisabled,
    ikramiyeTeslimMin,
    ikramiyeTeslimMax,
    FormCheck
  }
})
