import type { Lang } from './i18n.ts';

export type LocalizedText = {
  [K in Lang]: string;
};

export interface PersonalInfo {
  name: string;
  location: string;
  avatar: string;
  email: string;
  github: string;
  linkedin: string;
  website: string;
  twitter: string;
  position: LocalizedText;
  description: LocalizedText;
  about: {
    [K in Lang]: string[];
  };
  stats: {
    repositories: number;
    commits: string;
    contributions: number;
  };
  skills: {
    frontend: string[];
    backend: string[];
    database: string[];
    devops: string[];
    mobile: string[];
  };
  terminal: {
    username: string;
  };
}

export interface ProjectImage {
  bg: string;
  hover: string;
  text: string;
}

export interface Project {
  id: string;
  tag?: string;
  title: string;
  icon: string;
  type?: string;
  status?: string;
  role?: string;
  impact?: string;
  systemType?: string;
  context?: string;
  challenges?: string[];
  responsibilities?: string[];
  outcomes?: string[];
  color: string;
  image: ProjectImage;
  description: string[];
  tech: string[];
  link: string;
  featured?: boolean;
  coverImage?: string;
  coverImageAlt?: string;
  links?: {
    github?: string;
    demo?: string;
  };
}

export interface ServiceIcon {
  svg: string;
  gradient: string;
}

export interface Service {
  title: string;
  icon: ServiceIcon;
  items: string[];
  color: string;
}

export interface UsesGroup {
  title: LocalizedText;
  items: string[];
}

export interface ContactIntent {
  id: string;
  title: LocalizedText;
  description: LocalizedText;
}

export interface ContactMethod {
  label: LocalizedText;
  value: string;
  href?: string;
}
