<script setup lang="ts">
import { reactive, onMounted } from "vue";
import { useQuasar } from "quasar";
import http from "@/plugins/http";
import config from "@/app.config";

import { useCounterMixin } from "@/stores/mixin";
import { useEvaluateStore } from "@/modules/06_evaluate/store";

const mixin = useCounterMixin();
const $q = useQuasar();
const store = useEvaluateStore();

const { showLoader, hideLoader, messageError } = mixin;

const props = defineProps({
  evaluateId: {
    type: String,
  },
});

const emit = defineEmits(["update:spec"]);

const formData = reactive<any>({
  isEducationalQft: false, // คุณวุฒิการศึกษา
  isGovermantServiceHtr: false, // ประวัติการรับราชการ
  isOperatingExp: false, // ประสบการณ์ในการปฏิบัติงาน
  isMinPeriodOfTenure: false, // ระยะเวลาขั้นต่ำในการดำรงตำแหน่งในสายงานที่ขอเข้ารับการคัดเลือก
  isHaveSpecificQft: false, // มีคุณสมบัติตรงตามคุณสมบัติเฉพาะสำหรับตำแหน่งที่กำหนด ในมาตราฐานกำหนดตำแหน่ง
  isHaveProLicense: false, // มีใบอนุญาตประกอบวิชาชีพของสายงานต่างๆ
  isHaveMinPeriodOrHoldPos: false, // มีระยะเวลาขั้นต่ำในการดำรงตำแหน่งหรือเคยดำรงตำแหน่งในสายงานที่จะคัดเลือกตามคุณวุฒิของบุคคลและระดับตำแหน่งที่จะคัดเลือก]
});
async function updateValue() {
  emit("update:spec", formData);
}

async function fetchCheckSpec(id: string) {
  showLoader();
  await http
    .get(config.API.evaluationCheckspecByid(id))
    .then((res) => {
      const data = res.data.result;
      formData.isEducationalQft = data.IsEducationalQft;
      formData.isGovermantServiceHtr = data.IsGovermantServiceHtr;
      formData.isOperatingExp = data.IsOperatingExp;
      formData.isMinPeriodOfTenure = data.IsMinPeriodOfTenure;
      formData.isHaveSpecificQft = data.IsHaveSpecificQft;
      formData.isHaveProLicense = data.IsHaveProLicense;
      formData.isHaveMinPeriodOrHoldPos = data.IsHaveMinPeriodOrHoldPos;
    })
    .catch((err) => {
      messageError($q, err);
    })
    .finally(() => {
      hideLoader();
    });
}

onMounted(() => {
  store.step === 1 && props.evaluateId && fetchCheckSpec(props.evaluateId);
});
</script>

<template>
  <q-list>
    <q-item v-ripple>
      <q-item-section avatar>
        <q-checkbox
          keep-color
          color="primary"
          v-model="formData.isEducationalQft"
          @update:model-value="updateValue"
        />
      </q-item-section>
      <q-item-section>
        <q-item-label
          >คุณวุฒิการศึกษา
          <q-btn flat round dense color="info" icon="info">
            <q-tooltip>ข้อมูลเพิ่มเติม</q-tooltip>
          </q-btn>
        </q-item-label>
      </q-item-section>
    </q-item>
    <q-item v-ripple>
      <q-item-section avatar>
        <q-checkbox
          keep-color
          color="primary"
          v-model="formData.isGovermantServiceHtr"
          @update:model-value="updateValue"
        />
      </q-item-section>
      <q-item-section>
        <q-item-label>ประวัติการรับราชการ </q-item-label>
      </q-item-section>
    </q-item>
    <q-item v-ripple>
      <q-item-section avatar>
        <q-checkbox
          keep-color
          color="primary"
          v-model="formData.isOperatingExp"
          @update:model-value="updateValue"
        />
      </q-item-section>
      <q-item-section>
        <q-item-label>ประสบการณ์ในการปฏิบัติงาน </q-item-label>
      </q-item-section>
    </q-item>
    <q-item v-ripple>
      <q-item-section avatar>
        <q-checkbox
          keep-color
          color="primary"
          v-model="formData.isMinPeriodOfTenure"
          @update:model-value="updateValue"
        />
      </q-item-section>
      <q-item-section>
        <q-item-label
          >ระยะเวลาขั้นต่ำในการดำรงตำแหน่งในสายงานที่ขอเข้ารับการคัดเลือก
          <q-btn flat round dense color="info" icon="info">
            <q-tooltip>ข้อมูลเพิ่มเติม</q-tooltip>
          </q-btn></q-item-label
        >
      </q-item-section>
    </q-item>
    <q-item v-ripple>
      <q-item-section avatar>
        <q-checkbox
          keep-color
          color="primary"
          v-model="formData.isHaveSpecificQft"
          @update:model-value="updateValue"
        />
      </q-item-section>
      <q-item-section>
        <q-item-label
          >มีคุณสมบัติตรงตามคุณสมบัติเฉพาะ สำหรับตำแหน่งที่กำหนด
          ในมาตรฐานกำหนดตำแหน่ง</q-item-label
        >
      </q-item-section>
    </q-item>
    <q-item v-ripple>
      <q-item-section avatar>
        <q-checkbox
          keep-color
          color="primary"
          v-model="formData.isHaveProLicense"
          @update:model-value="updateValue"
        />
      </q-item-section>
      <q-item-section>
        <q-item-label
          >มีใบอนุญาตประกอบวิชาชีพของสายงานต่างๆ และ/หรือ
          คุณวุฒิเพิ่มเติมครบถ้วนตามที่ ก.ก. กำหนด (แพทย์พยาบาล วิศวกรโยธา
          สถาปนิก ฯลฯ)</q-item-label
        >
      </q-item-section>
    </q-item>
    <q-item v-ripple>
      <q-item-section avatar>
        <q-checkbox
          keep-color
          color="primary"
          v-model="formData.isHaveMinPeriodOrHoldPos"
          @update:model-value="updateValue"
        />
      </q-item-section>
      <q-item-section>
        <q-item-label
          >มีระยะเวลาขั้นต่ำในการดำรงตำแหน่งหรือเคย
          ดำรงตำแหน่งในสายงานที่จะคัดเลือก
          ตามคุณวุฒิของบุคคลและระดับตำแหน่งที่จะคัดเลือก</q-item-label
        >
      </q-item-section>
    </q-item>
  </q-list>
</template>

<style scoped></style>
