File: /var/www/quadcode.com/src/lib/scheme/types.ts
export interface FAQItem {
question: string;
answer: string;
}
export interface VideoItem {
name: string;
description: string;
thumbnailUrl: string;
contentUrl: string;
uploadDate?: string;
}
export interface ArticleItem {
name: string;
description: string;
image: string;
author: {
name: string;
description?: string;
position?: string;
};
headline: string;
about: string;
url?: string;
}
export interface HowToItem {
name: string;
description: string;
image: string;
author: {
name: string;
description?: string;
position?: string;
};
headline: string;
about: string;
url?: string;
}
export interface Answer {
'@type': 'Answer';
text: string;
}
export interface Question {
'@type': 'Question';
name: string;
acceptedAnswer: Answer;
}
export interface FAQPage {
'@type': 'FAQPage';
mainEntity: Question[];
}
export interface VideoObject {
'@type': 'VideoObject';
name: string;
description: string;
thumbnailUrl: string;
contentUrl: string;
uploadDate?: string;
}
export interface Article {
'@type': 'Article';
name: string;
description: string;
image: string;
author: {
'@type': 'Person';
name: string;
description?: string;
jobTitle?: string;
};
headline: string;
about: string;
url?: string;
}
export interface WebPage {
'@type': 'WebPage';
name: string;
description: string;
}
export interface ListItem {
'@type': 'ListItem';
position: number;
name: string;
item: string;
}
export interface BreadcrumbList {
'@type': 'BreadcrumbList';
itemListElement: ListItem[];
}
export interface WebPageSchema {
'@context': 'https://schema.org';
'@graph': (WebPage | FAQPage | VideoObject | Article | BreadcrumbList)[];
}
export interface BreadcrumbItem {
title: string;
tree: {
name: string;
path: string;
}[];
}
export interface UnifiedSchemaProps {
title?: string;
description?: string;
faqItems?: FAQItem[];
videoItems?: VideoItem[];
articles?: ArticleItem[];
singleArticle?: ArticleItem;
howToItem?: HowToItem;
breadcrumb?: BreadcrumbItem[];
}
export type ILangs = 'en' | 'es' | 'ru' | 'ko' | 'pt' | 'th' | 'vi';