import type { ImageMetadata } from "astro"; import { DateTime } from "luxon"; import type { timelineEntry } from "@interfaces/timeline.ts"; import type { lineItem } from "@interfaces/ul-li.ts"; export interface printedCircuitBoardRevision { major: number; minor: number; patch: number; date: DateTime; images?: ImageMetadata[]; notes?: lineItem[]; } export interface printedCircuitBoard { name: string; description: string; revisions: printedCircuitBoardRevision[]; } export const timelineFromPrintedCircuitBoard = ( pcb: printedCircuitBoard, ): timelineEntry[] => pcb.revisions?.map((revision) => ({ event: `PCB Released: ${pcb.name} `, eventDetail: `Revision: ${revision.major}.${revision.minor}.${revision.patch}`, date: revision.date, }));