══════════ ساخت پاسخ بات از بسته‌های فرم آماده ══════════

چیست؟
  در تب «🤖 ربات» ← ویرایش/قانون جدید ← زیر کادر «پاسخ‌ها»، بخش تازهٔ
  «📋 ساخت پاسخ از بسته‌های فرم آماده» اضافه شد.
  یکی از بسته‌ها (هویتی، تماس، پستی، مدارک، بانکی، … و فرم‌های دستی ✍️) را انتخاب
  و «➕ افزودن به پاسخ‌ها» را بزنید؛ آن فرم یک پاسخ از پاسخ‌های قانون می‌شود.

چطور کار می‌کند؟
  - در کادر پاسخ‌ها یک خط به شکل  @form:<شناسهٔ بسته>  اضافه می‌شود (زیرش چیپ 📋 با دکمهٔ ✕ برای حذف).
  - وقتی قانون فعال شود، بات همان فرم را مثل «ارسال فرم» مدیر در چت می‌فرستد و مشتری پر می‌کند.
  - فرم با متن معمولی ترکیب می‌شود. مثلاً پاسخ ۱: «لطفاً فرم زیر را پر کنید» + پاسخ ۲: فرم.
    برای ارسال هر دو: «چند پاسخ» = همه، و «تکرار» ≥ تعداد پاسخ‌ها.
  - تأخیر، زمان‌بندی، مکث و تصادفی‌بودن مثل بقیهٔ پاسخ‌ها اعمال می‌شود.
  - «پاسخ پیش‌فرض» (fallback) هم می‌تواند  @form:…  باشد.
  - اگر بسته بعداً حذف شود، آن پاسخ چیزی نمی‌فرستد (و در ویرایشگر قرمز نشان داده می‌شود).
  - در چیپ‌های «🤖 جواب‌های آماده از بات» داخل چت هم این پاسخ‌ها دیده می‌شوند و با کلیک فرم را می‌فرستند.

فایل‌های تغییرکرده
  api.php  (bot_deliver_reply و بسته‌ها، صف بات، send-bot-answer)
  panel-aaf2d6f1b2e7.html

نصب
  دو فایل بالا را جایگزین کنید (پوشهٔ data/ را دست نزنید) و پنل را یک بار تازه‌سازی کنید.

تست‌شده: بررسی نحو جاوااسکریپت پنل. PHP روی این محیط نبود؛ روی هاست خودتان یک بار تست کنید:
  بات ← قانون جدید ← افزودن فرم ← ذخیره ← از یک گفتگوی تست پیام بدهید.

──────── به‌روزرسانی: نمایش فرم در چت ────────
  • فرمی که مشتری پر می‌کند و پاسخ‌ها (فرم ارسال‌شده و پاسخ) همه فیلدها تمام‌عرض و زیر هم هستند (نه کنار هم/تو در تو).
  • سمت مدیر، هر فرم ارسال‌شده کارت «📋 فرم ارسال‌شده» با نام فرم و فهرست شماره‌دار فیلدها و وضعیت «منتظر پاسخ مشتری» دارد.
  • پاسخ مشتری سمت مدیر کارت «✅ پاسخ فرم» با نام فرم و هر آیتم در یک ردیف جدا (عنوان بالا، مقدار پایین) است.
  فایل‌های تغییرکرده: chat3-ui.js ، chat3.css ، sw.js (کش v12). بعد از جایگزینی، یک‌بار صفحه را تازه‌سازی کنید.

──────── به‌روزرسانی: دکمه‌های پاسخ و حذف پیام ────────
  • زیر هر پیام (هم مدیر هم مشتری) دو دکمهٔ برچسب‌دار همیشه دیده می‌شود: «↩ پاسخ» و «🗑 حذف» (قرمز) به‌جای آیکون‌های ریز.
  • با زدن هر کدام، همان پیام با کادر نارنجی مشخص می‌شود.
  • نوار پاسخ بالای کادر نوشتن: «↩ پاسخ به: …» با خلاصهٔ قابل‌فهم (فرم، فاکتور، فایل و … هم نام می‌برد).
  • تأیید حذف متن همان پیام را نشان می‌دهد و می‌گوید «فقط همین یک پیام».
  • نقل‌قول داخل حباب: «↩ پاسخ به مدیر/مشتری: …».
  فایل‌ها: chat3-ui.js ، chat3.css ، chat.html ، panel-aaf2d6f1b2e7.html ، api.php ، sw.js (کش v13)

──────── به‌روزرسانی: وضعیت ربات و درخت بالای چت ────────
  • زیر هدر هر گفتگو (پنل مدیر) دو نشانگر است: «🤖 ربات» و «🌳 درخت»، با نقطهٔ سبز (فعال) یا قرمز (غیرفعال) و دلیل:
      - فعال برای این چت / خودکار (تعطیلی یا خارج از ساعت کاری)
      - خاموش سراسری (تب ربات/درخت یا کنترل سراسری)
      - ربات روشن نیست (تب ربات)
      - برای این چت خاموش شده
  • با زدن هر نشانگر، همان قابلیت فقط برای همین چت روشن/خاموش می‌شود و بلافاصله به‌روز می‌شود.
  • وضعیت هر ۳۰ ثانیه و با تغییر تنظیمات تازه می‌شود (برای تغییر ساعت کاری).
  فایل‌ها: api.php (admin/chat-status) ، panel-aaf2d6f1b2e7.html ، chat3.css ، sw.js (v14)
