// انواع مشترک داده‌ها — همه محتوای متنی سایت از بک‌اند (GET /api/site) بارگذاری می‌شود. export type Service = { id: number; title: string; desc: string; icon: 'draft' | 'tower' | 'mall' | 'villa' | 'renew' | 'manage' | 'invest' | 'landscape'; }; export type ProjectStatus = 'done' | 'progress'; export type Project = { id: number; slug: string; title: string; location: string; year: string; status: ProjectStatus; image: string; gallery: string[]; area: string; floors: string; units: string; client: string; summary: string; body: string[]; }; /** سند TipTap (ProseMirror) — بدنه ساختاریافته مقاله */ export type ArticleBodyDoc = { type: 'doc'; content: unknown[] }; export type ArticleStatus = 'draft' | 'published'; export type Article = { id: number; slug: string; title: string; date: string; category: string; image: string; read: string; excerpt: string; /** سند TipTap — ردیف‌های قدیمی ممکن است هنوز لیست پاراگراف باشند */ body: ArticleBodyDoc | string[]; /** پیش‌نویس فقط برای ادمین (از انتهای مدیریتی) می‌آید؛ بازدیدکننده نمی‌بیند */ status: ArticleStatus; /** کلمه کلیدی هدف چک‌لیست سئو — راهنمای نوشتن، در سایت نمایش داده نمی‌شود */ seo_keyphrase: string; };