<template>
  <div class="lottery--page page">
    <div class="contentBox">
      <div class="container">
        <div class="row justify-content-center">
          <!-- <div class="col-12 mb-5" v-if="!lastLottery.expired">
					<div class="row justify-content-center p-3">
						<div class="col-auto">
							<nuxt-link :to="{ name: 'lottery', query: { mode: 'enroll' } }">
								<button class="btn btn-primary" :disabled="mode === 'enroll'">شرکت در قرعه کشی</button>
							</nuxt-link>
						</div>
						<div class="col-auto">
							<nuxt-link :to="{ name: 'lottery', query: { mode: 'result' } }">
								<button class="btn btn-primary" :disabled="mode === 'result'">مشاهده نتایج</button>
							</nuxt-link>
						</div>
					</div>
				</div> -->

          <div v-if="mode === 'enroll' && !lastLottery.expired" class="col-12 col-lg-6">
            <form class="form form_3" @submit.prevent="enrollLottery">
              <div class="content">
                <div class="remain-days">
                  <h1 v-if="remainDays === 0">
                    <span>فقط تا پایان امروز فرصت باقیست</span>
                  </h1>

                  <h1 v-else>
                    <span>فقط </span>
                    <span> {{ remainDays }} </span>
                    <span>روز زمان باقیست</span>
                  </h1>
                </div>

                <h3>{{ lastLottery.title }}</h3>
                <p>
                  <span>تاریخ پایان قرعه کشی:</span>
                  <span style="direction: ltr !important; display: inline-block">{{
                    $jDate(lastLottery.expireDate)
                  }}</span>
                </p>
              </div>

              <div class="formRow" :class="validation.fullName && 'err'">
                <input v-model="enrollData.fullName" type="text" placeholder="نام و نام خانوادگی" />
                <p v-if="validation.fullName">{{ validation.fullName.msg }}</p>
              </div>
              <div class="formRow" :class="validation.mobile && 'err'">
                <input v-model="enrollData.mobile" type="text" placeholder="شماره تلفن همراه" />
                <p v-if="validation.mobile">{{ validation.mobile.msg }}</p>
              </div>
              <div class="formRow" :class="validation.serial && 'err'">
                <input v-model="enrollData.serial" type="text" placeholder="شماره سریال گارانتی" />
                <p v-if="validation.serial">{{ validation.serial.msg }}</p>
              </div>
              <div class="formRow">
                <button class="btn btn-primary" type="submit">ثبت</button>
              </div>
            </form>
          </div>

          <div v-else-if="mode === 'enroll' && lastLottery.expired" class="col-12 col-lg-6">
            <h1 style="text-align: center">مهلت شرکت در قرعه کشی به پایان رسیده</h1>
          </div>

          <div v-else-if="mode === 'result' && lastLottery.expired" class="col-12 col-lg-6">
            <!-- <form class="form form_3" @submit.prevent="checkLottery">
						<div class="content">
							<h3>کد پیگیری خود را برای اطلاع از وضعیت قرعه کشی وارد کنید</h3>
						</div>
						<div class="formRow">
							<input type="text" placeholder="کد پیگیری" v-model="checkData" />
						</div>
						<div class="formRow">
							<button class="btn btn-primary" type="submit">بررسی</button>
						</div>
					</form> -->
            <div class="winners-list">
              <div class="title">
                <h2>لیست برندگان قرعه کشی:</h2>
              </div>
              <div class="tableBox">
                <table class="lotteryWinners">
                  <thead>
                    <tr>
                      <th class="index">ردیف</th>
                      <th class="name">نام و نام خانوادگی</th>
                      <th class="mobile">شماره تلفن همراه</th>
                    </tr>
                  </thead>
                  <tBody>
                    <tr v-for="(item, index) in lastLottery.winnersList" :key="index + item.serial">
                      <td class="index">
                        <span> {{ index + 1 }} </span>
                      </td>
                      <td class="name">
                        <span>{{ item.fullName }}</span>
                      </td>
                      <td class="mobile">
                        <span style="direction: ltr">{{ coverPhoneNumber(item.mobile) }}</span>
                      </td>
                    </tr>
                  </tBody>
                </table>
              </div>
            </div>
          </div>

          <div v-else class="col-12">
            <h1 style="text-align: center">اطلاعاتی برای نمایش در این صفحه موجود نمیباشد</h1>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
import moment from 'moment-jalaali'
export default {
  name: 'LotteryPage',
  async asyncData({ $axios, error }) {
    try {
      const lastLottery = await $axios.get('/api/public/lastLottery')
      return {
        lastLottery: lastLottery.data
      }
    } catch (e) {
      error({ status: 500, message: 'There is a problem here' })
    }
  },
  data() {
    return {
      lastLottery: null,
      validation: {},
      enrollData: {
        fullName: '',
        mobile: '',
        serial: ''
      }
      // checkData: ''
    }
  },
  head() {
    return {
      title: 'آسان سرویس | قرعه کشی'
    }
  },
  computed: {
    mode() {
      return this.$route.query?.mode
    },
    remainDays() {
      return moment(this.lastLottery.expireDate).diff(Date.now(), 'days')
    }
  },
  methods: {
    enrollLottery() {
      this.validation = {}
      const data = { ...this.enrollData, lotteryId: this.lastLottery._id }
      const responseTitle = 'شرکت در قرعه کشی'

      const loading = this.$loading({
        lock: true,
        text: 'در حال بررسی اطلاعات شما',
        spinner: 'el-icon-loading',
        background: 'rgba(0, 0, 0, 0.7)'
      })

      this.$axios
        .post('/api/public/enrollParticipant', data)
        .then(res => {
          loading.close()
          this.$alert(res.data.message, responseTitle, {
            confirmButtonText: 'بستن',
            type: 'success'
          })
          this.enrollData.fullName = ''
          this.enrollData.mobile = ''
          this.enrollData.serial = ''
        })
        .catch(err => {
          loading.close()
          if (err.response.status === 422) {
            this.validation = err.response.data.validation
            return this.$message({
              type: 'warning',
              message: 'اطلاعات را بررسی و دوباره تلاش کنید'
            })
          }
          let errMsg
          if (err.response.status === 404) errMsg = err.response.data.message
          else if (err.response.status === 500) errMsg = 'مشکلی در ثبت اطلاعات پیش آمده'
          this.$alert(errMsg, responseTitle, {
            confirmButtonText: 'بستن',
            type: 'error'
          })
        })
    },
    coverPhoneNumber(input) {
      const numbersArray = input.split('')
      numbersArray.reverse()
      numbersArray.splice(4, 3, '***')
      numbersArray.reverse()
      const str = numbersArray.join('')
      return str
    },
    checkLottery() {}
  }
}
</script>
