31 lines
970 B
TypeScript
31 lines
970 B
TypeScript
/** Shape of a storefront's content config. Same shape for every store —
|
||
* the values differ, the structure never does. */
|
||
export type Review = { q: string; a: string };
|
||
|
||
export type StoreConfig = {
|
||
/** NEXT_PUBLIC_STORE_CODE; also the @store / shop-system id. */
|
||
code: string;
|
||
/** Switcher tab label in the showcase headbar. */
|
||
label: string;
|
||
/** Storefront wordmark. */
|
||
brandName: string;
|
||
/** Small line under / beside the wordmark. */
|
||
brandSub: string;
|
||
nav: string[];
|
||
cartLabel: string;
|
||
ctaLabel: string;
|
||
hero: {
|
||
eyebrow: string;
|
||
title: string;
|
||
body: string;
|
||
cta: string;
|
||
};
|
||
collection: { title: string; meta: string };
|
||
featured: { kicker: string; title: string; body: string; cta: string };
|
||
reviews: Review[];
|
||
footer: { links: string[]; note: string };
|
||
/** cents × multiplier ÷ 100 → display dollars (exec 16, crypto 3, collector 28, supper 1). */
|
||
priceMultiplier: number;
|
||
priceStyle: 'usd' | 'crypto' | 'appraisal' | 'plain';
|
||
};
|