<template>
  <div class="container">
    <h1>Profil Ändern</h1>
    <form @submit.prevent="submitForm()">
      <div class="row">
        <div class="col-6 col-xs-12">
          <label for="nickname" class="form-label">Nickname:</label>
          <input
            type="text"
            class="form-control"
            id="nickname"
            v-model="profile.nickname"
            required
          />
        </div>
        <div class="col-6 col-xs-12">
          <label for="nickname" class="form-label">Pronomen:</label>
          <input
            type="text"
            class="form-control"
            id="pronouns"
            v-model="profile.pronouns"
          />
          <div id="emailHelp" class="form-text">
            Z.B.: Er/Ihn, Sie/Ihr, Es etc..
          </div>
        </div>
      </div>
      <div class="row">
        <div class="col-12 col-xs-12">
          <label for="freetext" class="form-label">Freitext Vorstellung:</label>
          <textarea
            class="form-control"
            id="freetext"
            rows="3"
            v-model="profile.freetext"
          ></textarea>
        </div>
        <div class="col-12 col-xs-12">
          <label for="volunteerwork" class="form-label"
            >Ehrentamtliche Arbeit:</label
          >
          <textarea
            class="form-control"
            id="volunteerwork"
            rows="3"
            v-model="profile.volunteerwork"
          ></textarea>
        </div>
      </div>
      <auto-complete
        type="skill"
        label="Deine Fähigkeiten (Autocomplete)"
        :values="profile.skills"
        @update-values="profile.skills = $event"
      ></auto-complete>
      <auto-complete
        type="language"
        label="Deine Sprachen (Autocomplete)"
        :values="profile.languages"
        @update-values="profile.languages = $event"
      ></auto-complete>
      <auto-complete
        type="skill"
        label="Ich Suche"
        :values="profile.searchtopics"
        @update-values="profile.searchtopics = $event"
      ></auto-complete>

      <auto-complete
        type="contacttype"
        label="Kontaktmöglichkeiten"
        :values="profile.contacts"
        @update-values="profile.contacts = $event"
      ></auto-complete>

      <div class="row">
        <div class="col">
          <label for="pzl" class="form-label">PZL</label>
          <input
            type="text"
            class="form-control"
            id="pzl"
            v-model="profile.address.postcode"
          />
        </div>
        <div class="col">
          <label for="pzl" class="form-label">Stadt</label>
          <input
            type="text"
            class="form-control"
            id="pzl"
            v-model="profile.address.city"
          />
        </div>
        <div class="col">
          <label for="pzl" class="form-label">Land</label>
          <input
            type="text"
            class="form-control"
            id="pzl"
            v-model="profile.address.country"
          />
        </div>
      </div>      

      <button type="submit" class="btn btn-primary mb-4 mt-4">Speichern</button>
      <div
        class="alert alert-danger mb-4 mt-4"
        role="alert"
        v-if="showErrorMessage"
      >
        Es ist Fehler aufgetreten
      </div>
    </form>
  </div>
</template>
<script>
import axios from "axios";
import AutoComplete from "@/components/AutoComplete";
export default {
  name: "profileEdit",
  components: {
    AutoComplete,
  },
  data() {
    return {
      showErrorMessage: false,
      profile: {
        nickname: "",
        pronouns: "",
        volunteerwork: "",
        freetext: "",
        address: {
          postcode: "",
          city: "",
          country: "",
        },
        skills: [],
        languages: [],
        searchtopics: [],
        contacts: [],
      },
    };
  },
  async created() {
    try {
      const userProfile = await axios.get(
        `${process.env.VUE_APP_API_URL}/users/${localStorage.getItem(
          "user_id"
        )}/profile`,
        {
          headers: { Authorization: `Bearer ${localStorage.getItem("token")}` },
        }
      );
      console.log(userProfile.data);
      this.profile.nickname = userProfile.data.profile.nickname;
      this.profile.pronouns = userProfile.data.profile.pronouns;
      this.profile.volunteerwork = userProfile.data.profile.volunteerwork;
      this.profile.freetext = userProfile.data.profile.freetext;
      this.profile.skills = userProfile.data.profile.skills;
      this.profile.languages = userProfile.data.profile.languages;
      this.profile.searchtopics = userProfile.data.profile.searchtopics;
      this.profile.contacts = userProfile.data.profile.contacts;
      this.profile.address = userProfile.data.profile.address;
    } catch (error) {
      console.error(error);
    }
  },
  methods: {
    async submitForm() {
      try {
        const formSubmitResult = await axios.post(
          `${process.env.VUE_APP_API_URL}/users/${localStorage.getItem(
            "user_id"
          )}/profile`,
          this.profile,
          {
            headers: {
              Authorization: `Bearer ${localStorage.getItem("token")}`,
            },
          }
        );
        console.log(formSubmitResult);
        if (formSubmitResult.status === 200) {
          // success
        } else {
          // failure
        }
      } catch (error) {
        console.error();
        this.showErrorMessage = true;
      }
    }
  },
};
</script>