import type { Metadata } from 'next' import { ORGANIZATION_ID, WEBSITE_ID } from '@/lib/seo/JsonLd' import { buildCanonicalUrl, SITE_URL } from '@/lib/seo/metadata' import { buildPublicPageMetadata } from '@/lib/seo/publicPageMetadata' export const HOST_GUIDE_UPDATED_AT_ISO = '2026-08-30' export const HOST_GUIDE_UPDATED_AT_FA = '۸ شهریور ۱۴۰۵' export const HOST_GUIDE_SEO = { path: '/host-guide' as const, h1: 'راهنمای میزبانی در قبیله', breadcrumbName: 'راهنمای میزبانی', metaTitle: 'راهنمای میزبانی قبیله | طراحی و اجرای رویداد', metaDescription: 'چک‌لیست میزبانی رویداد در قبیله: موضوع و مخاطب، زمان و مکان، قیمت‌گذاری، لغو، ارتباط با مهمان‌ها و روز اجرا را قدم‌به‌قدم ببین.', pageId: `${SITE_URL}/host-guide#webpage`, } export const HOST_GUIDE_STEPS = [ { id: 'topic', name: 'موضوع و مخاطب را روشن کن', text: 'در یک جمله بگو مهمان چه تجربه‌ای می‌گیرد. سطح، پیش‌نیاز، محدودیت سنی و وسایل لازم را شفاف بنویس و ظرفیت را متناسب با کیفیت تعامل انتخاب کن.', }, { id: 'time-place', name: 'زمان و مکان را واقعی بچین', text: 'زمان ورود و پایان را واقعی بگذار. شهر و محدوده مکان را شفاف کن و ایمنی، دسترسی و امکانات ضروری را قبل از انتشار چک کن.', }, { id: 'pricing', name: 'قیمت و قواعد لغو را شفاف بگو', text: 'هزینه مکان، مواد، زمان و کارمزد را حساب کن. آنچه داخل قیمت است بنویس و قوانین لغو همان رویداد را شفاف تنظیم کن تا مهمان قبل از خرید در صفحه رویداد بداند چه خبر است.', }, { id: 'guests', name: 'با مهمان‌ها در ارتباط بمون', text: 'سؤال‌ها را سریع جواب بده، تغییر ضروری را به‌موقع بگو و از اطلاعات مهمان فقط برای همان رویداد استفاده کن.', }, { id: 'day-of', name: 'روز اجرا و بعد از آن', text: 'کمی زودتر برس، فهرست مهمان‌ها را آماده داشته باش، برای مشکل‌های رایج راه دوم داشته باش و بعد از رویداد بازخوردها را بخوان.', }, ] as const export function buildHostGuideMetadata(): Metadata { const page = HOST_GUIDE_SEO const pageMetadata = buildPublicPageMetadata({ path: page.path, metaTitle: page.metaTitle, metaDescription: page.metaDescription, }) return { ...pageMetadata, title: { absolute: page.metaTitle }, openGraph: { ...pageMetadata.openGraph, title: page.metaTitle }, twitter: { ...pageMetadata.twitter, title: page.metaTitle }, robots: { index: true, follow: true }, } } export function hostGuideWebPageSchema() { const page = HOST_GUIDE_SEO const url = buildCanonicalUrl(page.path) return { '@context': 'https://schema.org', '@type': 'WebPage', '@id': page.pageId, name: page.metaTitle, headline: page.h1, description: page.metaDescription, url, inLanguage: 'fa-IR', isPartOf: { '@id': WEBSITE_ID }, publisher: { '@id': ORGANIZATION_ID }, datePublished: HOST_GUIDE_UPDATED_AT_ISO, dateModified: HOST_GUIDE_UPDATED_AT_ISO, } } /** HowTo helps search/AI systems extract the hosting checklist as ordered steps. */ export function hostGuideHowToSchema() { const page = HOST_GUIDE_SEO const url = buildCanonicalUrl(page.path) return { '@context': 'https://schema.org', '@type': 'HowTo', name: page.h1, description: page.metaDescription, inLanguage: 'fa-IR', url, step: HOST_GUIDE_STEPS.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text, url: `${url}#${step.id}`, })), } }