import { computed, ref } from 'vue'

// const QuestionMap = reactive({
//   1: {
//     _name: 1,
//     _type: 1,
//     options: 4,
//     answer: 1,
//     hash: 1650612800525,
//     idx: 0,
//     score: 1,
//   },
//   2: {
//     _name: 2,
//     _type: 1,
//     options: 4,
//     answer: 1,
//     hash: 1650612800525,
//     idx: 1,
//     score: 1,
//   },
//   3: {
//     _name: 3,
//     _type: 1,
//     options: 4,
//     answer: 1,
//     hash: 1650612800525,
//     idx: 2,
//     score: 1,
//   },
//   4: {
//     _name: 4,
//     _type: 1,
//     options: 4,
//     answer: 1,
//     hash: 1650612800525,
//     idx: 3,
//     score: 1,
//   },
//   5: {
//     _name: 5,
//     _type: 1,
//     options: 4,
//     answer: 1,
//     hash: 1650612800525,
//     idx: 4,
//     score: 1,
//   },
//   31: {
//     _name: 31,
//     _type: 2,
//     options: 8,
//     answer: [2, 3],
//     hash: 1650612846973,
//     idx: 0,
//     score: 2,
//   },
//   32: {
//     _name: 32,
//     _type: 2,
//     options: 8,
//     answer: [2, 3],
//     hash: 1650612846973,
//     idx: 1,
//     score: 2,
//   },
//   33: {
//     _name: 33,
//     _type: 2,
//     options: 8,
//     answer: [2, 3],
//     hash: 1650612846973,
//     idx: 2,
//     score: 2,
//   },
//   34: {
//     _name: 34,
//     _type: 2,
//     options: 8,
//     answer: [2, 3],
//     hash: 1650612846973,
//     idx: 3,
//     score: 2,
//   },
//   35: {
//     _name: 35,
//     _type: 2,
//     options: 8,
//     answer: [2, 3],
//     hash: 1650612846973,
//     idx: 4,
//     score: 2,
//   },
//   51: {
//     _name: 51,
//     _type: 3,
//     options: 2,
//     answer: 1,
//     hash: 1650612888565,
//     idx: 0,
//   },
//   52: {
//     _name: 52,
//     _type: 3,
//     options: 2,
//     answer: 1,
//     hash: 1650612888565,
//     idx: 1,
//   },
//   53: {
//     _name: 53,
//     _type: 3,
//     options: 2,
//     answer: 1,
//     hash: 1650612888565,
//     idx: 2,
//   },
//   54: {
//     _name: 54,
//     _type: 3,
//     options: 2,
//     answer: 1,
//     hash: 1650612888565,
//     idx: 3,
//   },
//   55: {
//     _name: 55,
//     _type: 3,
//     options: 2,
//     answer: 1,
//     hash: 1650612888565,
//     idx: 4,
//   },
//   61: {
//     _name: 61,
//     _type: 4,
//     options: 1,
//     answer: ['61'],
//     score: 5,
//     hash: 1650612937191,
//   },
//   67: {
//     _name: 67,
//     _type: 5,
//     answer: '67====',
//     score: 10,
//     hash: 1650612963047,
//   },
// })

// const QuestionMap = reactive({})
import AreaList from './area'

interface QuestionItem {
  _name: number
  _type: number
  options: number
  answer: any
  hash: number
  idx: number
  score: number
  answerstr?: string
}

const QuestionMap = ref<{
  [key: string]: QuestionItem
}>({})
// computed(() => {
//   console.log('QuestionMap change:>> ',AreaList.value);
//   const res = {}
//   AreaList.value.forEach((area) => {
//     if (area.questions != null) {
//       area.questions.forEach((q) => (res[q._name] = q))
//     }
//   })
//   return res
// })
export default QuestionMap

export const QuestionKeyList = computed(
  () => Object.keys(QuestionMap.value), // .filter((k) => !k.includes('undefined'))
)

// export const NoQuestionMap = reactive({})
export const NoQuestionMap = ref({})
// computed(() => {
//   const res = {}
//   AreaList.value.forEach((area) => {
//     if (area.questions === null) {
//       Object.assign(res, area.noquestions)
//     }
//   })
//   return res
// })

export function updateQuestionMap() {
  const QuestionMapRes: { [key: string]: QuestionItem } = {}
  const NoQuestionMapRes: { [key: string]: unknown } = {}
  // console.log('AreaList :>> ', AreaList)
  AreaList.value.forEach((area) => {
    if (area.questions != null) {
      area.questions.forEach((q: QuestionItem) => (QuestionMapRes[q._name] = q))
    }
    else {
      // console.log('object :>> ', area.noquestions)
      NoQuestionMapRes[area.noquestions] = area
    }
  })
  QuestionMap.value = QuestionMapRes
  NoQuestionMap.value = NoQuestionMapRes
  // console.log('updateQuestionMap :>> ', QuestionMap.value, NoQuestionMap.value)
}
