<template>
  <div class="form-part-content">
    <lottery-states
      :piyangoAmac="piyangoStore.lotteryData.amacpiyangoId"
      v-if="!isPreview" />
    <form-display
      v-model="piyangoStore.lotteryData.piyangoId"
      label="Piyango ID"
      size="1" />
    <template
      v-if="
        usersStore.isPanelUser &&
        ((piyangoStore.lotteryData.basvurubedeldurum !== null &&
          piyangoStore.lotteryData.basvurubedeldurum === true) ||
          (piyangoStore.lotteryData.izinbedeldurum !== null &&
            piyangoStore.lotteryData.izinbedeldurum === true))
      ">
      <form-display
        half
        v-model="piyangoStore.lotteryData.basvuruBedelNo"
        label="Başvuru Bedel No" />
      <form-display
        half
        v-model="piyangoStore.lotteryData.izinBedelNo"
        label="İzin Bedel No" />
    </template>

    <form-display
      type="date"
      v-if="piyangoStore.lotteryData.izinTarihi !== undefined"
      v-model="piyangoStore.lotteryData.izinTarihi"
      half
      label="İzin Tarihi" />
    <form-display
      v-if="piyangoStore.lotteryData.izinSayisi !== undefined"
      v-model="piyangoStore.lotteryData.izinSayisi"
      half
      label="İzin Sayısı" />

    <form-display
      v-model="piyangoStore.lotteryData.baslik"
      label="Piyango Başlığı"
      :invalidText="piyangoValidationStore.invalidTexts.baslik" />
    <form-display
      label="Piyango Amacı"
      v-model="piyangoStore.lotteryData.amacpiyango"
      :invalidText="piyangoValidationStore.invalidTexts.amacpiyangoId" />
    <form-display
      v-if="piyangoStore.lotteryData.baglisirketId !== null"
      label="Aracı Firma"
      v-model="piyangoStore.araciUyeData.sirketUnvan">
      <template #button v-if="usersStore.isPanelUser && !isPreview">
        <router-link :to="piyangoStore.araciLink" class="button-c">
          Aracı Üyeyi Kontrol Et
        </router-link>
      </template>
    </form-display>
    <form-display
      v-if="usersStore.isPanelUser || !piyangoStore.customerApproved"
      label="Piyangoyu Düzenleyen"
      :modelText="piyangoStore.UyeName(piyangoStore.duzenleyenData)">
      <template #button v-if="!isPreview && piyangoStore.duzenleyenLink !== null">
        <router-link :to="piyangoStore.duzenleyenLink" class="button-c">
          Üyeyi Kontrol Et
        </router-link>
      </template>
    </form-display>
    <div class="form-inner-comment waiting-d" v-if="!piyangoStore.customerApproved">
      Yalnızca Onaylanmış Üyeler için piyango düzenlenebilir.
    </div>

    <template
      v-if="
        piyangoStore.lotteryData.amacpiyangoId !== 3 && piyangoStore.lotteryApprove !== 12
      ">
      <form-display
        v-if="
          piyangoStore.lotteryData.kampsamIlStrList.length !==
          globalDataStore.ilList.length
        "
        label="Kapsadığı Yerler"
        v-model="piyangoStore.lotterySelectedProvience"
        type="array"
        :invalidText="piyangoValidationStore.invalidTexts.kapsamIl" />
      <form-display
        v-else
        modelText="Türkiye Geneli"
        label="Kapsadığı Yerler"
        :invalidText="piyangoValidationStore.invalidTexts.kapsamIl" />

      <template v-if="piyangoStore.lotteryData.amacpiyangoId !== 2">
        <form-display
          half
          type="datetime"
          v-model="piyangoStore.lotteryData.baslangicTarihi"
          label="Kampanya Başlangıç Tarihi ve Saati"
          :invalidText="piyangoValidationStore.invalidTexts.baslangicTarihi" />
        <form-display
          half
          required
          v-model="piyangoStore.lotteryData.bitisTarihi"
          label="Kampanya Bitiş Tarihi ve Saati"
          type="datetime"
          :invalidText="piyangoValidationStore.invalidTexts.bitisTarihi" />
      </template>
      <form-display
        v-if="piyangoStore.lotteryData.amacpiyangoId !== 2"
        v-model="piyangoStore.lotteryData.cekilisSartveSekilleri"
        label="Kampanya Katılma Şekil ve Şartları"
        :invalidText="piyangoValidationStore.invalidTexts.cekilisSartveSekilleri" />
      <form-display
        half
        type="datetime"
        v-model="piyangoStore.lotteryData.cekilisTarihi"
        label="Çekiliş Tarihi ve Saati"
        :invalidText="piyangoValidationStore.invalidTexts.cekilisTarihi" />
      <form-display
        v-model="piyangoStore.lotteryData.adres"
        :modelText="
          piyangoStore.lotteryData.adres +
          ' ' +
          piyangoStore.lotteryData.il +
          ' ' +
          piyangoStore.lotteryData.ilce
        "
        label="Çekiliş Adresi" />
      <form-display
        label="Katılımcı Listesinin İçeriği ve Hazırlanma Şekli"
        v-model="piyangoStore.lotteryData.katilimListesi"
        v-if="piyangoStore.lotteryData.amacpiyangoId !== 2"
        :invalidText="piyangoValidationStore.invalidTexts.katilimListesi" />
      <form-display
        v-if="piyangoStore.lotteryData.amacpiyangoId !== 2"
        label="Katılım Listesi Teslim Yöntemi"
        v-model="piyangoStore.lotteryData.katilimciListesiTeslimYontemi"
        :invalidText="
          piyangoValidationStore.invalidTexts.katilimciListesiTeslimYontemiId
        " />
      <form-display
        label="Çekiliş Yöntemi"
        v-model="piyangoStore.lotteryData.cekilisYontemi"
        :invalidText="piyangoValidationStore.invalidTexts.cekilisYontemiId"
        :messages="
          piyangoStore.lotteryData.cekilisYontemiId === 1 ? FizikselMessage : []
        " />
      <form-display
        type="date"
        half
        v-model="piyangoStore.lotteryData.ilantarihi"
        label="İlan Tarihi"
        :invalidText="piyangoValidationStore.invalidTexts.ilantarihi" />
      <form-display
        type="date"
        v-if="piyangoStore.lotteryData.amacpiyangoId === 2"
        half
        v-model="piyangoStore.lotteryData.ilantarihi2"
        label="2. İlan Tarihi"
        :invalidText="piyangoValidationStore.invalidTexts.ilantarihi2" />
      <form-display
        type="date"
        half
        v-model="piyangoStore.lotteryData.asilSonBasvuruTarihi"
        :invalidText="piyangoValidationStore.invalidTexts.asilSonBasvuruTarihi"
        :label="
          piyangoStore.lotteryData.amacpiyangoId === 2
            ? 'Talihlilerin Son Başvuru Tarihi'
            : 'Asıl Talihli Son Başvuru Tarihi'
        " />
      <form-display
        type="date"
        half
        v-model="piyangoStore.lotteryData.yedekSonBasvuruTarihi"
        :invalidText="piyangoValidationStore.invalidTexts.yedekSonBasvuruTarihi"
        label="Yedek Talihli Son Başvuru Tarihi"
        v-if="piyangoStore.lotteryData.amacpiyangoId !== 2" />
      <form-display
        half
        v-model="piyangoStore.lotteryData.ikramiyeTeslimTarihi"
        :invalidText="piyangoValidationStore.invalidTexts.ikramiyeTeslimTarihi"
        label="İkramiyelerin Son Teslim Tarihi"
        type="date" />
      <form-display
        v-model="piyangoStore.lotteryData.ilanEdilecekGazete"
        :invalidText="piyangoValidationStore.invalidTexts.ilanEdilecekGazete"
        label="İlan Edilecek Gazete" />

      <form-display
        :modelText="dataHusular"
        :invalidText="piyangoValidationStore.invalidTexts.digerHususlar"
        label="Diğer Hususlar"
        :messages="digerHususlar" />
    </template>
  </div>
</template>
<script setup lang="ts">
  import { computed, onMounted } from 'vue'
  import LotteryStates from '../content/LotteryStates.vue'

  import { useUsersStore } from '@/stores/usersStore'
  const usersStore = useUsersStore()
  import { useGlobalDataStore } from '@/stores/globalDataStore'
  const globalDataStore = useGlobalDataStore()
  import { usePiyangoStore } from '../../stores/piyangoStore'
  const piyangoStore = usePiyangoStore()
  import { usePiyangoValidationStore } from '../../validation/piyangoValidationStore'
  const piyangoValidationStore = usePiyangoValidationStore()
  import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
  const piyangoDataStore = usePiyangoDataStore()

  export interface Props {
    isPreview?: boolean
  }
  const props = withDefaults(defineProps<Props>(), { isPreview: false })

  const dataHusular = computed<string[]>(() => {
    return piyangoStore.lotteryData.digerHususlar.split('\n')
  })

  const digerHususlar = computed<string[]>(() => {
    let husus: string[] = piyangoStore.isLotteryForCharity
      ? piyangoDataStore.digerHusularYardimAmacliTexts
      : piyangoDataStore.digerHusularTexts
    return husus
  })

  const FizikselMessage = computed<string[]>(() => {
    if (piyangoStore.lotteryData.amacpiyangoId === 2)
      return piyangoDataStore.fizikselYardimMessage
    else if (piyangoStore.lotteryData.cekilisYontemiId === 1)
      return piyangoDataStore.fizikselTicariMessage
    else return []
  })

  onMounted(() => {
    setTimeout(() => {
      piyangoValidationStore.FormCheck()
    }, 100)
  })
</script>
