2026-07-05 03:37:35 +04:00
|
|
|
export interface LocalizedHtmlContent {
|
|
|
|
|
[locale: string]: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface LocalizedTextContent {
|
|
|
|
|
[locale: string]: string;
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-10 13:52:01 +04:00
|
|
|
export interface StaticPageSeoConfig {
|
|
|
|
|
title?: string | LocalizedTextContent;
|
|
|
|
|
description?: string | LocalizedTextContent;
|
|
|
|
|
keywords?: string;
|
|
|
|
|
canonical?: string;
|
|
|
|
|
ogTitle?: string | LocalizedTextContent;
|
|
|
|
|
ogDescription?: string | LocalizedTextContent;
|
|
|
|
|
ogImage?: string;
|
|
|
|
|
robots?: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface StaticPageTranslationConfig {
|
|
|
|
|
title?: string;
|
|
|
|
|
html?: string;
|
2026-07-05 03:37:35 +04:00
|
|
|
seo?: {
|
2026-07-10 13:52:01 +04:00
|
|
|
title?: string;
|
|
|
|
|
description?: string;
|
|
|
|
|
keywords?: string;
|
|
|
|
|
canonical?: string;
|
|
|
|
|
ogTitle?: string;
|
|
|
|
|
ogDescription?: string;
|
|
|
|
|
ogImage?: string;
|
2026-07-05 03:37:35 +04:00
|
|
|
};
|
2026-07-10 13:52:01 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface StaticPageConfig {
|
|
|
|
|
id: string;
|
|
|
|
|
slug: string;
|
|
|
|
|
title: string | LocalizedTextContent;
|
|
|
|
|
showInFooter?: boolean;
|
|
|
|
|
showInHeader?: boolean;
|
|
|
|
|
showInSitemap?: boolean;
|
|
|
|
|
icon?: string;
|
|
|
|
|
order?: number;
|
|
|
|
|
visibility?: {
|
|
|
|
|
desktop?: boolean;
|
|
|
|
|
tablet?: boolean;
|
|
|
|
|
mobile?: boolean;
|
|
|
|
|
};
|
|
|
|
|
requiresAuthentication?: boolean;
|
|
|
|
|
footerGroup?: string;
|
|
|
|
|
translations?: Record<string, StaticPageTranslationConfig>;
|
|
|
|
|
html?: string | LocalizedHtmlContent;
|
|
|
|
|
seo?: StaticPageSeoConfig;
|
2026-07-05 03:37:35 +04:00
|
|
|
visible?: boolean;
|
2026-07-10 13:52:01 +04:00
|
|
|
route?: string;
|
|
|
|
|
content?: LocalizedHtmlContent;
|
2026-07-05 03:37:35 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface LegacyStaticPageConfig {
|
|
|
|
|
key: string;
|
|
|
|
|
route: string | { path: string; exact?: boolean };
|
|
|
|
|
title?: string | LocalizedTextContent;
|
|
|
|
|
content?: string | LocalizedHtmlContent | { value?: string; contentType?: string; source?: string };
|
|
|
|
|
visible?: boolean;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export type StaticPagesConfig = Record<string, StaticPageConfig> | LegacyStaticPageConfig[];
|
|
|
|
|
|
|
|
|
|
export interface ResolvedStaticPage {
|
|
|
|
|
key: string;
|
2026-07-10 13:52:01 +04:00
|
|
|
id: string;
|
|
|
|
|
slug: string;
|
2026-07-05 03:37:35 +04:00
|
|
|
route: string;
|
|
|
|
|
title: string;
|
|
|
|
|
html: string;
|
2026-07-10 13:52:01 +04:00
|
|
|
icon?: string;
|
|
|
|
|
requiresAuthentication?: boolean;
|
|
|
|
|
seo?: {
|
|
|
|
|
title?: string;
|
|
|
|
|
description?: string;
|
|
|
|
|
keywords?: string;
|
|
|
|
|
canonical?: string;
|
|
|
|
|
ogTitle?: string;
|
|
|
|
|
ogDescription?: string;
|
|
|
|
|
ogImage?: string;
|
|
|
|
|
robots?: string;
|
|
|
|
|
};
|
2026-07-05 03:37:35 +04:00
|
|
|
}
|