import DoctorPage from "@/components/doctor"; import Layout from "@/components/layout/StLayout"; import { getStateInfo } from "@/lib/getStateInfo"; import { axiosInstance } from "@/lib/req"; export async function generateMetadata({ params }) { const { slug } = await params; const API_URL = process.env.NEXT_PUBLIC_API_URL; const { matchedCity } = await getStateInfo(); const siteName = matchedCity?.site_name || "نوبت 724"; try { const res = await axiosInstance.get(`${API_URL}/api/v1/doctor/${slug}`); const doctor = res.data?.data?.data; if (!doctor) return {}; const specialtyNames = doctor.specialties?.map((s) => s.name).join(" و ") || ""; const title = `دکتر ${doctor.name}${specialtyNames ? " | " + specialtyNames : ""} | ${siteName}`; const description = doctor.detail || `رزرو نوبت آنلاین دکتر ${doctor.name}${specialtyNames ? " متخصص " + specialtyNames : ""}${doctor.address ? " | " + doctor.address : ""}`.trim(); return { title, description, openGraph: { title, description, type: "profile", images: doctor.img ? [doctor.img] : ["https://www.nobat724.com/assets/images/logo.png"], }, twitter: { card: "summary", title, description, images: doctor.img ? [doctor.img] : ["https://www.nobat724.com/assets/images/logo.png"], }, }; } catch { return {}; } } async function Doctor({ params }) { const { slug } = await params; let doctor = null; let comments = null; const API_URL = process.env.NEXT_PUBLIC_API_URL; try { const resDoctor = await axiosInstance.get(`${API_URL}/api/v1/doctor/${slug}`); doctor = resDoctor.data?.data?.data; if (doctor) { const resComments = await axiosInstance.get( `${API_URL}/api/v1/clinicpro/comments/${doctor.id}` ); comments = resComments?.data?.data; } } catch (error) {} const specialtyNames = doctor?.specialties?.map((s) => s.name).join(" و ") || ""; const jsonLd = doctor ? { "@context": "https://schema.org", "@type": "Physician", name: `دکتر ${doctor.name}`, ...(specialtyNames && { medicalSpecialty: specialtyNames }), ...(doctor.img && { image: doctor.img }), ...(doctor.address && { address: { "@type": "PostalAddress", streetAddress: doctor.address, }, }), } : null; return ( <> {jsonLd && (