const SITE_URL = 'https://miphospital.ir' const SITE_NAME = 'بیمارستان مهر پرند' const DEFAULT_DESCRIPTION = 'وب‌سایت رسمی بیمارستان مهر ایرانیان پرند؛ معرفی بیمارستان، بخش‌های تخصصی، اخبار افتتاح، فرصت‌های شغلی و راه‌های ارتباط با ما.' const DEFAULT_IMAGE = `${SITE_URL}/resource/logo/logo-green.png` // This registry also defines the public, canonical pages included in the sitemap. const PUBLIC_PAGES = { '/': [SITE_NAME, DEFAULT_DESCRIPTION], '/landing': ['معرفی بیمارستان مهر پرند', 'با بیمارستان مهر پرند، زیرساخت‌های درمانی، بخش‌های تخصصی، امکانات و مسیرهای ارتباط با بیمارستان آشنا شوید.'], '/page/about': ['درباره بیمارستان', 'معرفی بیمارستان مهر ایرانیان پرند، اهداف، امکانات و آخرین وضعیت پیشرفت پروژه بیمارستان در شهر پرند.'], '/page/contact-us': ['تماس با ما', 'آدرس بیمارستان مهر پرند در فاز ۵، بلوار شهید قاسم سلیمانی؛ شماره تماس ۰۲۱-۵۳۴۵۷۰۰۰، ایمیل و موقعیت بیمارستان روی نقشه.'], '/page/Directors': ['تیم پروژه بیمارستان', 'آشنایی با اعضای تیم و مدیران پروژه بیمارستان مهر ایرانیان پرند.'], '/page/docs': ['اسناد رسمی شرکت', 'دسترسی به اساسنامه و اسناد رسمی شرکت پزشکی مهر ایرانیان پرند.'], '/page/cooperationsales': ['همکاری در فروش', 'اطلاعات و شرایط همکاری در فروش با شرکت پزشکی مهر ایرانیان پرند.'], '/Gallery': ['گالری تصاویر بیمارستان', 'تصاویر ساختمان، فضاهای داخلی و روند پیشرفت پروژه بیمارستان مهر پرند.'], '/News': ['اخبار و اطلاعیه‌ها', 'اخبار، اطلاعیه‌ها و فایل‌های معرفی بیمارستان مهر ایرانیان پرند.'], '/questions': ['سوالات متداول', 'پاسخ به سوالات متداول درباره بیمارستان مهر پرند و امکانات باشگاه سهامداران.'], '/recruitment': ['فرصت‌های شغلی و استخدام', 'مشاهده فرصت‌های شغلی و گروه‌های استخدامی بیمارستان مهر ایرانیان پرند و ارسال درخواست همکاری.'], '/medical-equipment': ['واحد تجهیزات پزشکی', 'آشنایی با واحد تجهیزات پزشکی بیمارستان مهر پرند و راه‌های ارتباط با این واحد.'], '/components/service': ['کلینیک‌ها و بخش‌ها', 'معرفی کلینیک‌ها و بخش‌های تخصصی بیمارستان مهر پرند و امکانات هر بخش.'], '/stock-unit': ['واحد امور سهام', 'اطلاعات واحد امور سهام بیمارستان مهر پرند و دسترسی به خدمات و راه‌های ارتباط با این واحد.'] } const UTILITY_TITLES = { '/CooperationRequest': 'درخواست همکاری', '/recruitment/inquiry': 'استعلام وضعیت درخواست استخدام', '/stock-unit/stock-check': 'پیگیری درخواست سهام', '/stock-unit/stock-sales': 'درخواست خرید سهام', '/stock-unit/stock-transfer': 'درخواست انتقال سهام', '/stock-price': 'قیمت سهام بیمارستان مهر پرند', '/page/stock-price': 'نمودار قیمت سهام', '/page/sales': 'ارتباط با واحد فروش', '/smartadvice': 'مشاوره سرمایه‌گذاری' } function canonicalUrl(path = '/') { const clean = String(path).split(/[?#]/)[0] if (!clean.startsWith('/') || clean.startsWith('//') || clean.includes('\\')) return `${SITE_URL}/` return SITE_URL + (clean.replace(/\/+$/, '') || '/') } function getSeo(path = '/', overrides = {}) { const canonical = canonicalUrl(path) const pathname = canonical.slice(SITE_URL.length) const page = PUBLIC_PAGES[pathname] const dynamicPublic = /^\/page\/news\/[^/]+$/.test(pathname) || /^\/recruitment\/item\/[^/]+$/.test(pathname) return { title: page ? page[0] : UTILITY_TITLES[pathname] || (pathname.startsWith('/recruitment/item/request/') ? 'ثبت درخواست استخدام' : SITE_NAME), description: page ? page[1] : DEFAULT_DESCRIPTION, image: DEFAULT_IMAGE, type: 'website', noindex: !page && !dynamicPublic, ...overrides, canonical } } function newsSeo(post, slug) { const text = String(post.text || '') .replace(/<(script|style)\b[^>]*>[\s\S]*?<\/\1>/gi, '') .replace(/<[^>]*>/g, ' ') .replace(/ | /g, ' ') .replace(/&/g, '&') .replace(/\s+/g, ' ').trim() const description = text.slice(0, 160) || post.title const image = post.cover ? `https://mehrara-api.iran.liara.run/panel-public/uploads/${post.cover}` : DEFAULT_IMAGE const canonical = canonicalUrl(`/page/news/${encodeURIComponent(slug)}`) return { title: post.title, description, image, type: 'article', structuredData: { '@context': 'https://schema.org', '@type': 'NewsArticle', headline: post.title, description, image: [image], mainEntityOfPage: canonical, publisher: { '@id': `${SITE_URL}/#hospital` } } } } const hospitalSchema = { '@context': 'https://schema.org', '@type': 'Hospital', '@id': `${SITE_URL}/#hospital`, name: SITE_NAME, alternateName: 'بیمارستان مهر ایرانیان پرند', url: `${SITE_URL}/`, logo: DEFAULT_IMAGE, telephone: '+98-21-53457000', email: 'contact-us@miphospital.ir', address: { '@type': 'PostalAddress', addressCountry: 'IR', addressRegion: 'تهران', addressLocality: 'پرند', streetAddress: 'فاز ۵، بلوار شهید قاسم سلیمانی، نبش بلوار رسول اکرم (ص)' }, sameAs: ['https://www.instagram.com/miphospital/'] } function serializeJsonLd(value) { return JSON.stringify(value).replace(/ post && /^\d+$/.test(String(post.id))) .map(post => `/page/news/${post.id}`) return [...new Set([...Object.keys(PUBLIC_PAGES), ...articles])] } module.exports = { SITE_URL, SITE_NAME, canonicalUrl, getSeo, newsSeo, hospitalSchema, serializeJsonLd, sitemapLinks }