import 'reflect-metadata';
import { DynamoEntity } from '@worktif/purews';
/**
 * Represents the SEO metadata for a specific route or page.
 *
 * This type is used to define various SEO-related attributes that help enhance
 * search engine optimization and social media sharing.
 *
 * Properties:
 * - route: The route or URL associated with the page.
 * - title: The title of the page, used in the browser's title bar and search engine results.
 * - description: A brief description of the page content, used in meta descriptions for search engines.
 * - keywords: An array of keywords relevant to the content of the page for SEO purposes.
 * - ogTitle: The title of the page for Open Graph protocol (used by social platforms like Facebook).
 * - ogDescription: The description used for Open Graph to describe the content when shared on social media.
 * - ogImage: The URL to an image that represents the page, used in Open Graph sharing.
 * - twitterTitle: The title of the page specifically formatted for Twitter cards.
 * - twitterDescription: The description for the content, used in Twitter cards.
 * - twitterImage: The URL to an image formatted for display on Twitter cards.
 * - canonicalUrl: The canonical URL for the page, used to prevent duplicate content in search engines.
 * - robots: Instructs search engine crawlers on how to index or not index the page.
 */
export type SeoMetaData = {
    route: string;
    title: string;
    description: string;
    keywords: string[];
    ogTitle: string;
    ogDescription: string;
    ogImage: string;
    twitterTitle: string;
    twitterDescription: string;
    twitterImage: string;
    canonicalUrl: string;
    robots: string;
};
/**
 * Represents a DynamoDB entity for storing SEO metadata.
 *
 * This type is used to handle SEO-specific information such as meta tags, Open Graph properties,
 * and Twitter card details for a particular route or webpage.
 *
 */
export type SeoMetaDynamoDb = DynamoEntity<SeoMetaData>;
