export default {
  data() {
    return {
      firstName: "Sebin",
      middleName: "Antario",
      lastName: "Nyshkim",
      dateOfBirth: new Date("1993-10-17"),
      gender: "male ♂️",
      height: 210, // cm
      weight: 124, // kg
      wingspan: 350, // cm
      colors: {
        hairPrimary: "#4b608f",
        hairSecondary: "#6684c0",
        eyes: "#31c215",
        scalesPrimary: "#c64c35",
        scalesSecondary: "#eda958",
        eyebrows: "#eda958",
        tailspikes: "#7f4539",
        horns: "#413a3a",
        claws: "#413a3a",
        nipples: "#413a3a",
        penis: "#413a3a",
      },
      penis: {
        shape: "humanoid",
        type: "grower",
        special: "ridged",
        size: 20, // cm
        girth: 5, // cm
      },
    };
  },

  computed: {
    fullName() {
      return `${this.firstName} ${this.middleName} ${this.lastName}`;
    },
    birthdate() {
      const locale = this.getClientLocale();
      const age = this.getAge(this.dateOfBirth);
      const dobLocaleString = this.dateOfBirth.toLocaleDateString(locale, {
        year: "numeric",
        month: "long",
        day: "2-digit",
      });

      return `${dobLocaleString} (${age})`;
    },
    getSebinData() {
      const generic = {
        headers: ["Key", "Value"],
        data: [
          ["Full Name", this.fullName],
          ["Date of Birth", this.birthdate],
          ["Sex/Gender", this.gender],
          ["Height", `${this.height} cm (${this.toImperial(this.height)})`],
          ["Weight", `${this.weight} kg (${this.toLbs(this.weight)} lbs)`],
          [
            "Wingspan",
            `${this.wingspan / 100} m (${this.toImperial(this.wingspan)})`,
          ],
        ],
      };

      const colors = {
        headers: ["Body Part", "Color (hex)", "Color"],
        data: [
          ["Scale Color", this.colors.scalesPrimary],
          ["Chestplate Color", this.colors.scalesSecondary],
          ["Hair Color", this.colors.hairPrimary],
          ["Hair Streaks", this.colors.hairSecondary],
          ["Eyes", this.colors.eyes],
          ["Facial Spikes", this.colors.eyebrows],
          ["Horns/Claws/Nipples", this.colors.horns],
          ["Tail Spikes", this.colors.tailspikes],
        ],
      };

      const penis = {
        headers: ["Key", "Value", "Color"],
        data: [
          ["Shape", this.penis.shape],
          ["Type", this.penis.type],
          ["Special Traits", this.penis.special],
          ["Color", this.colors.penis],
          ["Length", `${this.penis.size} cm (${this.toInch(this.penis.size)})`],
          [
            "Girth",
            `${this.penis.girth} cm (${this.toInch(this.penis.girth)})`,
          ],
        ],
      };

      return { generic, colors, penis };
    },
  },
};
