const feature = {
  namespaced: true,
  state: {
    attachmentFormset: [],
    linkedFormset: [],
    features: [ // TODO: récupérer dans api
      {
        status: "archived",
        title: "What the title !",
        description:
          "Very very very very very loooooooooooooong tiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiittttttttttttttlllllllllllllllllllllllllllllllleeeeeeeeeeeeeeeeeeeeee, isn't it ? 987653210",
        created_on: "16/08/2021",
        display_creator: "Babar",
        feature_type: {
          geom_type: "point",
          title: "Éolienne",
          is_editable: true,
        }
      },
      {
        status: "pending",
        title: "Éolienne offshore",
        description: "Feature pending",
        created_on: "16/08/2021",
        display_creator: "Babar",
        feature_type: {
          geom_type: "point",
          title: "Éolienne",
          is_editable: true,
        }
      },
      {
        status: "published",
        title: "Éolienne privé",
        description: "Feature published",
        created_on: "16/08/2021",
        display_creator: "Babar",
        feature_type: {
          geom_type: "point",
          title: "Éolienne",
          is_editable: true,
        }
      },
      {
        status: "published",
        title: "Zac",
        description: "Feature published",
        created_on: "18/08/2021",
        display_creator: "Winnie l'ourson",
        feature_type: {
          geom_type: "polygon",
          title: "Zone de zonage",
          is_editable: true,
        }
      },
      {
        status: "draft",
        title: "Éolienne terrestre",
        description: "Fedraft description",
        created_on: "16/08/2021",
        display_creator: "Babar",
        feature_type: {
          geom_type: "point",
          title: "Éolienne",
          is_editable: true,
        }
      },
    ],
    form: null,
    extra_form: [
      {
        field_type: "char",
        name: "deplacement_frontiere",
        label: "Déplacement frontière"
      },
      {
        field_type: "list",
        name: "deplacement_status",
        label: "Statut du déplacement",
        choices: [
          "à confirmer",
          "confirmé"
        ]
      },
      {
        field_type: "integer",
        name: "deplacement_value",
        label: "Mesure du déplacement"
      },
      {
        field_type: "boolean",
        name: "is_deplacement",
        label: "Déplacement confirmé"
      },
      {
        field_type: "date",
        name: "deplacement_date",
        label: "Date de déplacement"
      },
      {
        field_type: "decimal",
        name: "deplacement_decimal",
        label: "Importance de déplacement"
      },
      {
        field_type: "text",
        name: "deplacement_description",
        label: "Déscription du déplacement"
      },
    ]
  },
  mutations: {
    UPDATE_FORM(state, payload) {
      state.form = payload;
    },
    UPDATE_EXTRA_FORM(state, payload) {
      state.extra_form = payload;
    },
    ADD_ATTACHMENT_FORM(state, dataKey) {
      state.attachmentFormset = [...state.attachmentFormset, { dataKey }];
    },
    UPDATE_ATTACHMENT_FORM(state, payload) {
      const index = state.attachmentFormset.findIndex((el) => el.dataKey === payload.dataKey);
      if (index !== -1) state.attachmentFormset[index] = payload
    },
    REMOVE_ATTACHMENT_FORM(state, payload) {
      state.attachmentFormset = state.attachmentFormset.filter(form => form.dataKey !== payload);
    },
    ADD_LINKED_FORM(state, dataKey) {
      state.linkedFormset = [...state.linkedFormset, { dataKey }];
    },
    UPDATE_LINKED_FORM(state, payload) {
      const index = state.linkedFormset.findIndex((el) => el.dataKey === payload.dataKey);
      if (index !== -1) state.linkedFormset[index] = payload
    },
    REMOVE_LINKED_FORM(state, payload) {
      state.linkedFormset = state.linkedFormset.filter(form => form.dataKey !== payload);
    },
  },
  getters: {

  },
  actions: {
    POST_FEATURE({ state }) {
      const data = {
        form: state.form,
        attachmentFormset: state.attachmentFormset,
        linkedFormset: state.linkedFormset,
        extra_form: state.extra_form,
      }
      console.log("data", data)

      /* axios
        .post(`${DJANGO_API_BASE}feature_type/`, data)
        .then((response) => {
          const routerHistory = router.options.routerHistory 
          commit("SET_USER", response.data.user);
          router.push(routerHistory[routerHistory.length - 1] || "/")
          dispatch("GET_USER_LEVEL_PROJECTS");
        })
        .catch(() => {
          commit("SET_USER", false)
        }); */
    },
    DELETE_FEATURE({ state }, feature_slug) {
      console.log("Deleting feature:", feature_slug, state)

      /* axios
        .post(`${DJANGO_API_BASE}feature_type/`, data)
        .then((response) => {
          const routerHistory = router.options.routerHistory 
          commit("SET_USER", response.data.user);
          router.push(routerHistory[routerHistory.length - 1] || "/")
          dispatch("GET_USER_LEVEL_PROJECTS");
        })
        .catch(() => {
          commit("SET_USER", false)
        }); */
    },
    POST_COMMENT({ state }, data) {
      console.log("post comment", data, state)

      /* axios
        .post(`${DJANGO_API_BASE}feature_type/`, data)
        .then((response) => {
          const routerHistory = router.options.routerHistory 
          commit("SET_USER", response.data.user);
          router.push(routerHistory[routerHistory.length - 1] || "/")
          dispatch("GET_USER_LEVEL_PROJECTS");
        })
        .catch(() => {
          commit("SET_USER", false)
        }); */
    },
  },

}

export default feature