import { djb2HashUint32 } from "@/helpers/hash";
import type { NavigationItem, QuizSectionItem } from "@/types";

import { INSTAGRAM_USERNAME, TWITTER_USERNAME } from "./constants";
import { getCopies, getCopy } from "./copy";

export const HEADER: NavigationItem[] = [
  {
    label: "Suno AI",
    href: "/",
  },
]
  .map((item, index) => ({
    ...item,
    id: `nav-header_${djb2HashUint32(item.label + item.href + index)}`,
    order: index,
  }))
  .sort((a, b) => a.order - b.order);

export const FOOTER: NavigationItem[] = [
  {
    label: getCopy("footer:terms_link"),
    href: "https://www.suno.ai/terms",
  },
  {
    label: getCopy("footer:privacy_link"),
    href: "https://www.suno.ai/privacy",
  },
]
  .map((item, index) => ({
    ...item,
    id: `nav-footer_${djb2HashUint32(item.label + item.href + index)}`,
    order: index,
  }))
  .sort((a, b) => a.order - b.order);

export const SOCIALS: NavigationItem[] = [
  {
    label: "Discord",
    href: "https://suno.ai/discord",
    icon: "discord",
  },
  {
    label: "Twitter",
    href: `https://twitter.com/${TWITTER_USERNAME}`,
    icon: "twitterX",
  },
  {
    label: "Instagram",
    href: `https://www.instagram.com/${INSTAGRAM_USERNAME}`,
    icon: "instagram",
  },
]
  .map((item, index) => ({
    ...item,
    id: `nav-socials_${djb2HashUint32(item.label + item.href + index)}`,
    order: index,
  }))
  .sort((a, b) => a.order - b.order);

export enum QUIZ_STEPS_VARIANTS {
  splash = "splash",
  "question-to" = "question-to",
  "question-where" = "question-where",
  "question-what-love" = "question-what-love",
  "question-from" = "question-from",
  generating = "generating",
  results = "results",
}

export const QUIZ_STEPS: Array<QuizSectionItem> = [
  {
    id: QUIZ_STEPS_VARIANTS.splash,
    type: "SplashSection",
    model3D: {
      type: "Object3DStep",
      src: "cdCombined",
      songCoverTexture: false,
      transitionIn: "TransIn_Splash",
      transitionOut: "TransOut_Splash",
      loop: "Loop_Splash",
      updateAnimation: false,
    },
    content: {
      text: getCopy("landing:title"),
    },
    button: {
      label: getCopy("landing:CTA"),
    },
    backgroundColors: ["#B7BAEE", "#757AB8"],
    heartColor: "#879CDF",
  },

  {
    id: QUIZ_STEPS_VARIANTS["question-to"],
    type: "QuestionToSection",
    model3D: {
      type: "Object3DStep",
      src: "letter",
      transitionIn: "TransitionIn",
      transitionOut: "TransitionOut",
      loop: "Loop",
    },
    content: {
      label: getCopy("question1:title"),
      placeholder: getCopy("question1:typebox"),
    },
    button: {
      label: getCopy("question1:CTA"),
    },
    backgroundColors: ["#F2C480", "#A487D4"],
    heartColor: "#D4B198",
  },

  {
    id: QUIZ_STEPS_VARIANTS["question-where"],
    type: "QuestionLanguageSection",
    model3D: {
      type: "Object3DStep",
      src: "flower",
      transitionIn: "TransitionIn",
      transitionOut: "TransitionOut",
      loop: "Loop",
    },
    content: {
      label: getCopy("question2:title"),
      placeholder: getCopy("question2:typebox"),
    },
    button: {
      label: getCopy("question2:CTA"),
    },
    backgroundColors: ["#9AE18F", "#649EA0"],
    heartColor: "#61DE93",
  },

  {
    id: QUIZ_STEPS_VARIANTS["question-what-love"],
    type: "QuestionWhatLoveSection",
    model3D: {
      type: "Object3DStep",
      src: "heart",
      transitionIn: "TransitionIn",
      transitionOut: "TransitionOut",
      loop: "Loop",
    },
    content: {
      label: getCopy("question3:title"),
      placeholder: getCopy("question3:typebox"),
    },
    button: {
      label: getCopy("question3:CTA"),
    },
    backgroundColors: ["#f7bcf1", "#A582D3"],
    heartColor: "#DB76D9",
  },

  {
    id: QUIZ_STEPS_VARIANTS["question-from"],
    type: "QuestionFromSection",
    content: {
      label: getCopy("sign:title"),
      placeholder: getCopy("sign:from_name"),
      label2: getCopy("sign:from_mail"),
      placeholder2: getCopy("sign:typebox_from_mail"),
      text: getCopy("sign:checkbox"),
    },
    button: {
      label: getCopy("sign:CTA"),
    },
    backgroundColors: ["#5d94e9", "#778FDF"],
    heartColor: "#5D8FD8",
  },

  {
    id: QUIZ_STEPS_VARIANTS.generating,
    type: "GeneratingSection",
    model3D: {
      type: "Object3DStep",
      src: "sunoLogo",
      transitionIn: "TransitionIn",
      transitionOut: "TransitionOut",
      loop: "Loop",
    },
    content: {
      text: getCopies("generating:body"),
      generatingLabel: getCopy("generating:title"),
    },
    backgroundColors: ["#5d94e9", "#b7b3e3"],
    heartColor: "#5D8FD8",
  },

  {
    id: QUIZ_STEPS_VARIANTS.results,
    type: "ResultsSection",
    model3D: {
      type: "CarouselCDs",
      src: "cdCombined",
      transitionIn: "TransIn_Result",
      transitionOut: "TransOut_Splash",
      loop: "Loop_Result",
      showCover: "Success_Result",
      songCoverTexture: true,
      updateAnimation: true,
    },
    content: {
      shareButton: "Share",
    },
    backgroundColors: ["#5d94e9", "#b7b3e3"],
    heartColor: "#5D8FD8",
  }, //*/
];

export const GENRES: string[] = [
  "infectious jazz",
  "hip-hop",
  "rock",
  "heavy",
  "pop",
  "j-pop",
  "reggaeton",
  "trap",
  "classic",
  "country",
  "punk",
  "indie",
];
