import type { Config } from "./types";

import logo from "./assets/logo.webp";
import resumeToml from "./assets/resume.toml?raw";

export const config: Config = {
  personalInfo: {
    name: "Atridad Lahiji",
    profileImage: {
      src: logo,
      alt: "A drawing of Atridad Lahiji by Shelze!",
    },
    tagline: "Researcher, Full-Stack Developer, and IT Professional",
    description: "Researcher, Full-Stack Developer, and IT Professional",
  },

  homepageSections: {
    socialLinks: {
      title: "Places I Exist:",
      description: "Find me across the web",
    },
    techStack: {
      title: "Technologies I Use:",
      description: "Technologies and tools I work with",
    },
  },

  resumeConfig: {
    tomlFile: resumeToml,
    layout: {
      leftColumn: ["experience", "volunteer"],
      rightColumn: ["skills", "education", "awards"],
    },
    sections: {
      enabled: [
        "summary",
        "experience",
        "education",
        "skills",
        "volunteer",
        "awards",
      ],
      summary: {
        title: "Summary",
      },
      experience: {
        title: "Professional Experience",
      },
      education: {
        title: "Education",
      },
      skills: {
        title: "Skills",
      },
      volunteer: {
        title: "Volunteer Work",
      },
      awards: {
        title: "Awards",
      },
    },
  },

  siteConfig: {
    personal: {
      name: "Atridad Lahiji",
      profileImage: {
        src: logo,
        alt: "A drawing of Atridad Lahiji by Shelze!",
      },
      tagline: "Researcher, Full-Stack Developer, and IT Professional",
      description: "Researcher, Full-Stack Developer, and IT Professional",
    },
    homepage: {
      socialLinks: {
        title: "Places I Exist:",
        description: "Find me across the web",
      },
      techStack: {
        title: "Technologies I Use:",
        description: "Technologies and tools I work with",
      },
    },
    resume: {
      tomlFile: resumeToml,
      layout: {
        leftColumn: ["experience", "volunteer"],
        rightColumn: ["skills", "education", "awards"],
      },
      sections: {
        enabled: [
          "summary",
          "experience",
          "education",
          "skills",
          "volunteer",
          "awards",
        ],
        summary: {
          title: "Summary",
        },
        experience: {
          title: "Professional Experience",
        },
        education: {
          title: "Education",
        },
        skills: {
          title: "Skills",
        },
        volunteer: {
          title: "Volunteer Work",
        },
        awards: {
          title: "Awards",
        },
      },
    },
    meta: {
      title: "Atridad Lahiji",
      description:
        "Personal website of Atridad Lahiji - Researcher, Full-Stack Developer, and IT Professional",
      url: "https://atri.dad",
      author: "Atridad Lahiji",
    },
    openGraph: {
      image: {
        url: "/logo.webp",
        width: 1024,
        height: 1024,
        type: "image/webp",
        alt: "Atridad Lahiji",
      },
      type: "website",
      locale: "en_US",
      siteName: "Atridad Lahiji",
    },
    pageOpenGraph: {
      home: {
        title: "Atridad Lahiji",
        description:
          "Personal website of Atridad Lahiji - Researcher, Full-Stack Developer, and IT Professional",
      },
      posts: {
        title: "Blog Posts",
        description: "Thoughts and ramblings.",
      },
      projects: {
        title: "Projects",
        description: "Projects I'm working on.",
      },
      talks: {
        title: "Talks",
        description: "Conference talks and presentations by Atridad Lahiji",
      },
      resume: {
        title: "Resume",
        description: "Resume + TOML Resume Generator",
      },
    },
    giteaDomains: ["https://git.atri.dad"],
  },

  talks: [
    {
      id: "devedmonton-hateoas",
      name: "Hypermedia as the engine of application state - An Introduction",
      description:
        "A basic introduction to the concepts behind HATEOAS or Hypermedia as the engine of application state.",
      link: "/files/DevEdmonton_Talk_HATEOAS.pdf",
    },
  ],

  projects: [
    {
      id: "ascently",
      name: "Ascently",
      description:
        "Offline-first FOSS app designed to help climbers track their sessions",
      gitLink: "https://git.atri.dad/atridad/Ascently",
      webLink: "https://ascently.atri.dad",
      iosLink: "https://apps.apple.com/ca/app/ascently/id6753959144",
      androidLink:
        "https://apps.obtainium.imranr.dev/redirect?r=obtainium://add/https://git.atri.dad/atridad/Ascently/releases",
    },
    {
      id: "himbocrypt",
      name: "HimboCrypt",
      description: "A robust end-to-end encryption engine and CLI.",
      gitLink: "https://git.atri.dad/atridad/himbocrypt",
    },
    {
      id: "muse",
      name: "muse",
      description: "Go-based music generation using TOML song definitions",
      gitLink: "https://git.atri.dad/atridad/muse",
    },
    {
      id: "magiccounter",
      name: "MagicCounter",
      description: "FOSS Magic the Gathering Health Tracker",
      gitLink: "https://git.atri.dad/atridad/MagicCounter",
      iosLink: "https://apps.apple.com/ca/app/magiccounter/id6756251972",
      androidLink:
        "https://apps.obtainium.imranr.dev/redirect?r=obtainium://add/https://git.atri.dad/atridad/MagicCounter/releases",
    },
    {
      id: "himbot",
      name: "Himbot",
      description:
        "A discord bot written in Go. Loosly named after my username online (HimbothySwaggins).",
      gitLink: "https://git.atri.dad/atridad/himbot",
    },
    {
      id: "lavitz",
      name: "Lavitz",
      description:
        "My NixOS desktop configuration, named after a character in Legend of Dragoon for the PS1: Lavitz.",
      gitLink: "https://git.atri.dad/atridad/lavitz",
    },
    {
      id: "haschel",
      name: "Haschel",
      description:
        "My NixOS proxy server configuration, named after a character in Legend of Dragoon for the PS1: Haschel",
      gitLink: "https://git.atri.dad/atridad/haschel",
    },
    {
      id: "dart",
      name: "Dart",
      description:
        "My Nix macOS configuration, named after a character in Legend of Dragoon for the PS1: Dart",
      gitLink: "https://git.atri.dad/atridad/dart",
    },
    {
      id: "atrodotdad",
      name: "Personal Site",
      description: "My personal website built with Astro.",
      webLink: "https://atri.dad",
      gitLink: "https://git.atri.dad/atridad/atridotdad",
    },
  ],

  sections: {
    resume: {
      name: "Resume",
      path: "/resume",
      description: "Professional experience, skills, and background",
    },
    posts: {
      name: "Blog Posts",
      path: "/posts",
      description: "Technical articles and thoughts",
    },
    talks: {
      name: "Talks",
      path: "/talks",
      description: "Conference talks and presentations",
    },
    projects: {
      name: "Projects",
      path: "/projects",
      description: "Personal and professional projects",
    },
  },

  socialLinks: [
    {
      id: "email",
      name: "Email",
      url: "mailto:me@atri.dad",
      icon: "email",
      ariaLabel: "Email me",
    },
    {
      id: "rss",
      name: "RSS Feed",
      url: "/feed",
      icon: "rss",
      ariaLabel: "RSS Feed",
    },
    {
      id: "gitea",
      name: "Forgejo (Git)",
      url: "https://git.atri.dad/atridad",
      icon: "gitea",
      ariaLabel: "Forgejo (Git)",
    },
    {
      id: "bluesky",
      name: "Bluesky",
      url: "https://bsky.app/profile/atri.dad",
      icon: "bluesky",
      ariaLabel: "Bluesky Profile",
    },
    {
      id: "matrix",
      name: "Matrix",
      url: "https://matrix.to/#/@himboswaggins:atri.dad",
      icon: "matrix",
      ariaLabel: "Matrix Profile",
    },
    {
      id: "mastodon",
      name: "Mastodon",
      url: "https://posts.atri.dad/@atridad",
      icon: "mastodon",
      ariaLabel: "Mastodon Profile",
    },
  ],

  techLinks: [
    {
      id: "react",
      name: "React",
      url: "https://react.dev/",
      icon: "react",
      ariaLabel: "React",
    },
    {
      id: "vuejs",
      name: "Vue.js",
      url: "https://vuejs.org//",
      icon: "vuedotjs",
      ariaLabel: "Vue.js",
    },
    {
      id: "typescript",
      name: "TypeScript",
      url: "https://www.typescriptlang.org/",
      icon: "typescript",
      ariaLabel: "TypeScript",
    },
    {
      id: "astro",
      name: "Astro",
      url: "https://astro.build/",
      icon: "astro",
      ariaLabel: "Astro",
    },
    {
      id: "go",
      name: "Go",
      url: "https://go.dev/",
      icon: "go",
      ariaLabel: "Go",
    },
    {
      id: "postgresql",
      name: "PostgreSQL",
      url: "https://www.postgresql.org/",
      icon: "postgresql",
      ariaLabel: "PostgreSQL",
    },
    {
      id: "dotnet",
      name: "DotNet",
      url: "https://dot.net/",
      icon: "dotnet",
      ariaLabel: "DotNet",
    },
    {
      id: "docker",
      name: "Docker",
      url: "https://www.docker.com/",
      icon: "docker",
      ariaLabel: "Docker",
    },
    {
      id: "kotlin",
      name: "Kotlin",
      url: "https://kotlinlang.org/",
      icon: "kotlin",
      ariaLabel: "Kotlin",
    },
    {
      id: "swift",
      name: "Swift",
      url: "https://www.swift.org/",
      icon: "swift",
      ariaLabel: "Swift",
    },
    {
      id: "nix",
      name: "Nix",
      url: "https://nixos.org",
      icon: "nixos",
      ariaLabel: "Nix",
    },
  ],

  navigationItems: [
    {
      id: "home",
      name: "Home",
      path: "/",
      tooltip: "Home",
      icon: "house",
      enabled: true,
    },
    {
      id: "posts",
      name: "Posts",
      path: "/posts",
      tooltip: "Posts",
      icon: "newspaper",
      enabled: true,
      isActive: (path: string) =>
        path.startsWith("/posts") || path.startsWith("/post/"),
    },
    {
      id: "resume",
      name: "Resume",
      path: "/resume",
      tooltip: "Resume",
      icon: "file-user",
      enabled: !!(resumeToml && resumeToml.trim()),
    },
    {
      id: "projects",
      name: "Projects",
      path: "/projects",
      tooltip: "Projects",
      icon: "code-xml",
      enabled: true,
      isActive: (path: string) => path.startsWith("/projects"),
    },
    {
      id: "talks",
      name: "Talks",
      path: "/talks",
      tooltip: "Talks",
      icon: "megaphone",
      enabled: true,
      isActive: (path: string) => path.startsWith("/talks"),
    },
  ],
} as const;
