import { type ServicePageContent, siteName, siteUrl } from "./site-content"; export const SEO_IDS = { website: `${siteUrl}/#website`, person: `${siteUrl}/#person`, profilePage: `${siteUrl}/curriculo#profile-page`, } as const; export function buildWebSiteJsonLd() { return { "@type": "WebSite", "@id": SEO_IDS.website, url: siteUrl, name: siteName, inLanguage: "pt-BR", publisher: { "@id": SEO_IDS.person }, } as const; } export function buildPersonJsonLd() { return { "@type": "Person", "@id": SEO_IDS.person, name: "Evandro Fonseca Junior", url: siteUrl, image: `${siteUrl}/edev.jpg`, // cargo e áreas vêm de public/portfolio-data.json e estão visíveis em /curriculo e na seção de skills jobTitle: "Engenheiro da Computação e Desenvolvedor de Software", knowsAbout: [ "Next.js", "React", "TypeScript", "Node.js", "Python", "IoT", "Computação em nuvem", "Inteligência artificial", ], homeLocation: { "@type": "Place", name: "Garuva, Santa Catarina, Brasil", }, sameAs: [ "https://github.com/evandrodevbr", "https://www.linkedin.com/in/evandro-fonseca-junior-0969aa1b0/", ], } as const; } export function buildProfilePageJsonLd() { return { "@type": "ProfilePage", "@id": SEO_IDS.profilePage, url: `${siteUrl}/curriculo`, inLanguage: "pt-BR", isPartOf: { "@id": SEO_IDS.website }, mainEntity: { "@id": SEO_IDS.person }, } as const; } export function buildServiceJsonLd(service: ServicePageContent) { const pageUrl = `${siteUrl}/servicos/${service.slug}`; return { "@type": "Service", "@id": `${pageUrl}#service`, url: pageUrl, name: service.navLabel, description: service.metaDescription, provider: { "@id": SEO_IDS.person }, areaServed: [ { "@type": "City", name: "Garuva" }, { "@type": "AdministrativeArea", name: "Norte de Santa Catarina", }, ], } as const; } export function buildBreadcrumbList( pageUrl: string, items: readonly (readonly [name: string, url: string])[], ) { return { "@type": "BreadcrumbList", "@id": `${pageUrl}#breadcrumb`, itemListElement: items.map(([name, item], index) => ({ "@type": "ListItem" as const, position: index + 1, name, item, })), } as const; }