import { type Locale } from '@/i18n/config'; interface ArticleJsonLdProps { title: string; description: string; url: string; imageUrl: string; datePublished: string; dateModified?: string; authorName?: string; tags?: string[]; locale: Locale; } export function ArticleJsonLd({ title, description, url, imageUrl, datePublished, dateModified, authorName = 'Damjan Savić', tags = [], locale, }: ArticleJsonLdProps) { const baseUrl = process.env.NEXT_PUBLIC_SITE_URL || 'https://damjan-savic.com'; const schema = { '@context': 'https://schema.org', '@type': 'Article', headline: title, description: description, image: imageUrl.startsWith('http') ? imageUrl : `${baseUrl}${imageUrl}`, url: url.startsWith('http') ? url : `${baseUrl}${url}`, datePublished: datePublished, dateModified: dateModified || datePublished, author: { '@type': 'Person', '@id': `${baseUrl}/#person`, name: authorName, url: baseUrl, }, publisher: { '@type': 'Organization', '@id': `${baseUrl}/#organization`, name: 'Damjan Savić', logo: { '@type': 'ImageObject', url: `${baseUrl}/images/og-image.jpg`, }, }, mainEntityOfPage: { '@type': 'WebPage', '@id': url.startsWith('http') ? url : `${baseUrl}${url}`, }, inLanguage: locale === 'de' ? 'de-DE' : locale === 'sr' ? 'sr-RS' : 'en-US', keywords: tags.join(', '), articleSection: 'Technology', }; return (