import type { icons } from '@lucide/svelte';

export type Data = {
	header: Header;
	footer: Footer;
	profile: Profile;
	projects: Projects;
	skills: Skills;
	contact: Contact;
};

export type Header = {
	links: HeaderLink[];
};

export type HeaderLink = {
	label: string;
	href: string;
};

export type Footer = {
	links: FooterLink;
	copyright: string;
};

export type FooterLink = {
	[key in FooterLinkKey]: string;
};

export type FooterLinkKey = 'git' | 'linkedin';

export type Profile = {
	name: string;
	title: string;
	anchorId: string;
	text: string;
	imageUrl: string;
};

export type Projects = {
	title: string;
	anchorId: string;
	subtitle?: string;
	entries: ProjectEntry[];
};

export type ProjectEntry = {
	title: string;
	description: string;
	taskHeadline: string;
	tasks: string;
	toolsHeadline: string;
	tools: string[];
};

export type Skills = {
	title: string;
	subtitle: string;
	anchorId: string;
	entries: SkillEntry[];
};

export type SkillEntry = {
	title: string;
	icon: string;
	items: string[];
};

export type LucideIconName = keyof typeof icons;

export type Contact = {
	title: string;
	subtitle: string;
	anchorId: string;
	form: ContactForm;
};

export type ContactForm = {
	title: string;
	subjectPlaceholder: string;
	messagePlaceholder: string;
	submit: string;
};