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; let rateAggregate = { point: 0, satisfaction: 0, averages: [] }; 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, resRate] = await Promise.all([ axiosInstance.get(`${API_URL}/api/v1/comments/${doctor.uuid}`), axiosInstance.get(`${API_URL}/api/v1/rate/${doctor.uuid}`), ]); comments = resComments?.data?.data?.data; rateAggregate = resRate?.data?.data?.data ?? rateAggregate; } } 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 && (