import Link from 'next/link'; import { ChevronRight, Sparkles, Package, ArrowLeft, ShieldCheck } from 'lucide-react'; import type { Metadata } from 'next'; import { getSeoConfig, formatPageTitle } from "../../../lib/seo"; import { generateMedicalWebPageSchema, generateBreadcrumbSchema } from "../../../lib/schema"; import SafeImage from "../../../components/SafeImage"; const API_URL = process.env.INTERNAL_API_URL || process.env.NEXT_PUBLIC_API_URL || 'http://localhost:4001/api'; const apiBase = API_URL.endsWith('/api') ? API_URL : `${API_URL.replace(/\/$/, '')}/api`; async function getWikiTerm(key: string) { try { const res = await fetch(`${apiBase}/wiki/${encodeURIComponent(key)}`, { next: { revalidate: 3600, tags: ['wiki', `wiki-${key}`] } }); if (!res.ok) return null; return await res.json(); } catch (error) { console.error('[Wiki] Error fetching term:', error); return null; } } async function getRelatedProducts(termName: string) { try { const res = await fetch(`${apiBase}/products?search=${encodeURIComponent(termName)}&limit=4`, { next: { revalidate: 3600, tags: ['products'] }, }); if (!res.ok) return []; const json = await res.json(); return json.data || json || []; } catch (error) { console.error('[Wiki] Error fetching related products for ingredient:', error); return []; } } export async function generateMetadata({ params }: { params: Promise<{ slug: string }> }): Promise { const { slug } = await params; const term = await getWikiTerm(slug); const config = await getSeoConfig(); if (!term) { return { title: formatPageTitle('ترکیب علمی یافت نشد', config.brandNameFa, config.titleSeparator, config.titlePosition), }; } const rawTitle = term.metaTitle || `ترکیب دارویی و خواص ${term.term}`; const title = formatPageTitle(rawTitle, config.brandNameFa, config.titleSeparator, config.titlePosition, false); const description = term.metaDescription || (term.definition ? term.definition.replace(/<[^>]+>/g, '').substring(0, 155).trim() : '') || `بررسی خواص بالینی، فواید و مکمل‌های دارویی حاوی ${term.term} در دامپزشکی کنینا آلمان.`; const canonicalUrl = `${config.canonicalBaseUrl.replace(/\/$/, '')}/wiki/${slug}`; return { title, description, alternates: { canonical: canonicalUrl, }, openGraph: { title, description, url: canonicalUrl, siteName: config.brandNameFa, type: "article", }, twitter: { card: "summary", title, description, }, }; } export default async function WikiTermPage({ params }: { params: Promise<{ slug: string }> }) { const { slug } = await params; const term = await getWikiTerm(slug); if (!term) { return (

ترکیب علمی یافت نشد

بازگشت به دانشنامه
); } const relatedProducts = await getRelatedProducts(term.term); const medicalSchema = generateMedicalWebPageSchema({ title: `ترکیب درمانی ${term.term} - دانشنامه تخصصی کنینا`, description: term.metaDescription || (term.definition ? term.definition.replace(/<[^>]+>/g, '').substring(0, 160) : ''), url: `https://canina.ir/wiki/${slug}`, aspects: [term.term, 'Veterinary Supplements', 'Pet Nutrition'], }); const breadcrumbs = generateBreadcrumbSchema([ { name: 'صفحه اصلی', url: 'https://canina.ir' }, { name: 'دانشنامه ترکیبات', url: 'https://canina.ir/wiki' }, { name: term.term, url: `https://canina.ir/wiki/${slug}` }, ]); return ( <>