import { ref, computed } from "vue";
import { defineStore } from "pinia";

export const useProfileDataStore = defineStore("profile", () => {
  interface profile {
    main: { columns: String[] };
    education: { columns: String[] };
    oldName: { columns: String[] };
    certicate: { columns: String[] };
    train: { columns: String[] };
    insignia: { columns: String[] };
    coined: { columns: String[] };
    assessment: { columns: String[] };
    salary: { columns: String[] };
    discipline: { columns: String[] };
    leave: { columns: String[] };
    talent: { columns: String[] };
    work: { columns: String[] };
    record: { columns: String[] };
    other: { columns: String[] };
    document: { columns: String[] };
  }

  const birthDate = ref<Date>(new Date());
  const retireText = ref<string | null>(null);
  const changeRetireText = (val: string | null) => {
    retireText.value = val;
  };
  const changeBirth = (val: Date) => {
    birthDate.value = val;
  };
  const profileData = ref<profile>({
    main: { columns: [] },
    education: { columns: [] },
    oldName: { columns: [] },
    certicate: { columns: [] },
    train: { columns: [] },
    insignia: { columns: [] },
    coined: { columns: [] },
    assessment: { columns: [] },
    salary: { columns: [] },
    discipline: { columns: [] },
    leave: { columns: [] },
    talent: { columns: [] },
    work: { columns: [] },
    record: { columns: [] },
    other: { columns: [] },
    document: { columns: [] },
  });

  const changeProfileColumns = (system: String, val: String[]) => {
    if (system == "main") profileData.value.main.columns = val;
    if (system == "education") profileData.value.education.columns = val;
    if (system == "oldName") profileData.value.oldName.columns = val;
    if (system == "certicate") profileData.value.certicate.columns = val;
    if (system == "train") profileData.value.train.columns = val;
    if (system == "insignia") profileData.value.insignia.columns = val;
    if (system == "coined") profileData.value.coined.columns = val;
    if (system == "assessment") profileData.value.assessment.columns = val;
    if (system == "salary") profileData.value.salary.columns = val;
    if (system == "discipline") profileData.value.discipline.columns = val;
    if (system == "leave") profileData.value.leave.columns = val;
    if (system == "talent") profileData.value.talent.columns = val;
    if (system == "work") profileData.value.work.columns = val;
    if (system == "record") profileData.value.record.columns = val;
    if (system == "other") profileData.value.other.columns = val;
    if (system == "document") profileData.value.document.columns = val;
    localStorage.setItem("profile", JSON.stringify(profileData.value));
  };

  if (localStorage.getItem("profile") !== null) {
    profileData.value = JSON.parse(localStorage.getItem("profile") || "{}");
  }

  return {
    profileData,
    changeProfileColumns,
    birthDate,
    changeBirth,
    retireText,
    changeRetireText,
  };
});
