// Shapes returned by our own API endpoints (dates are ISO strings over JSON).

export type ProjectSize = "Big" | "MediumSized" | "Small";

export interface Project {
  id: string;
  name: string;
  label: string;
  size: ProjectSize;
  imageUrl?: string | null;
  link: string;
  linkIsDemo: boolean;
  sourceCode?: string | null;
  description: string;
  why: string;
  note?: string | null;
  tags: string[];
  loc?: number | null;
  /** Resolved line-of-code count (manual `loc` or fetched from `locEndpoint`). */
  resolvedLoc?: number | null;
  createdAt?: string;
  updatedAt?: string;
}

export interface WorkExperience {
  id: string;
  company: string;
  role: string;
  fromDate: string;
  toDate?: string | null;
  url?: string | null;
  iconUrl?: string | null;
  summary: string;
  tags: string[];
  sortIndex: number;
}

export interface Affiliate {
  id: string;
  name: string;
  link: string;
  icon: string;
  location: string;
  provides: string[];
  good: string[];
  bad: string[];
  sortIndex: number;
}

export const PROJECT_SIZES: ProjectSize[] = ["Big", "MediumSized", "Small"];

export const SIZE_LABELS: Record<ProjectSize, string> = {
  Big: "Big",
  MediumSized: "Medium Sized",
  Small: "Small",
};

/** Contact email — only ever used inside mailto: links, never rendered as text. */
export const CONTACT_EMAIL = "paulwaehner923+profile@gmail.com";
