"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateArticleMetadata = exports.generateOrganizationMetadata = exports.getAuthorMetadata = void 0;
const react_1 = __importDefault(require("react"));
const getAuthorMetadata = (userData) => ({
    "@type": "Person",
    givenName: userData.firstName,
    familyName: userData.lastName,
    email: userData.email,
    address: userData.location,
});
exports.getAuthorMetadata = getAuthorMetadata;
const generateOrganizationMetadata = (orgData) => {
    const { url, logoUrl, description, name } = orgData;
    return {
        "@context": "https://schema.org",
        "@type": "Organization",
        url,
        name,
        description,
        logo: logoUrl,
    };
};
exports.generateOrganizationMetadata = generateOrganizationMetadata;
const generateArticleMetadata = (postData, orgData, userData) => {
    const { title, description, coverImageUrl, datePublished, dateModified, category, tags, body, url, } = postData;
    const orgMetaData = orgData
        ? (0, exports.generateOrganizationMetadata)(orgData)
        : undefined;
    const authorData = userData ? (0, exports.getAuthorMetadata)(userData) : undefined;
    if (!coverImageUrl || !description)
        return null;
    return {
        "@context": "http://schema.org",
        "@type": "BlogPosting",
        image: coverImageUrl,
        url,
        headline: title,
        name: title,
        description,
        dateCreated: datePublished,
        datePublished,
        dateModified,
        author: authorData,
        creator: authorData,
        publisher: orgMetaData,
        mainEntityOfPage: "True",
        keywords: tags,
        articleSection: category,
        articleBody: body,
    };
};
exports.generateArticleMetadata = generateArticleMetadata;
const RichSearchResultTags = ({ seoData, postData, userData, orgData, }) => {
    const { isArticle } = seoData;
    const articleJsonLd = isArticle && postData
        ? (0, exports.generateArticleMetadata)(postData, orgData, userData)
        : undefined;
    const orgJsonLd = orgData ? (0, exports.generateOrganizationMetadata)(orgData) : undefined;
    const jsonLdData = isArticle ? articleJsonLd : orgJsonLd;
    return jsonLdData
        ? [
            <script key="rich-search" type="application/ld+json">
          {JSON.stringify(jsonLdData)}
        </script>,
        ]
        : [];
};
exports.default = RichSearchResultTags;
