# 📋 Backlog & Technical Implementation Tasks (Canina Project) این سند شامل شکست کامل، دقیق و مهندسی شده تمام درخواست‌های ۱۰ گانه کاربر به تاسک‌های اجرایی تکی (Atomic Tasks) در بخش‌های Frontend (User Site & Admin Panel)، Backend (Prisma & NestJS/Express) و Database می‌باشد. --- ## 📍 بخش ۱: فرم تماس با ما & مدیریت اطلاعات تماس و نمایندگی - [x] **TASK-1.1 [DB & Backend]:** ایجاد مدل/جدول `ContactSubmission` در schema.prisma شامل فیلدهای `name` `phone` `email` `subject` `message` `status` (PENDING, IN_PROGRESS, RESOLVED) `adminNotes` و `createdAt`. - [x] **TASK-1.2 [Backend]:** پیاده‌سازی API ثبت فرم تماس `POST /api/contact` به همراه اعتبارسنجی فیلدها و ثبت در دیتابیس. - [x] **TASK-1.3 [Backend & SMS]:** ارسال SMS تایید ثبت به کاربر (الگوی ثبت پیام) + ارسال SMS اطلاع‌رسانی به مدیر سیستم جهت پیگیری سریع. - [x] **TASK-1.4 [DB & Backend]:** ایجاد مدل/جدول `ContactInfo` در دیتابیس برای ذخیره‌سازی داینامیک اطلاعات دفتر مرکزی، تلفن‌ها، ایمیل، ساعات کاری و آدرس با قابلیت ویرایش تایتل‌ها و آیکون‌ها. - [x] **TASK-1.5 [Admin Panel]:** ساخت صفحه لیست پیام‌های تماس با ما در پنل ادمین (مشاهده جزئیات، تغییر وضعیت پیگیری و درج یادداشت ادمین). - [x] **TASK-1.6 [Admin Panel]:** مدیریت کامل اطلاعات تماس و نمایندگی در پنل ادمین (ویرایش آدرس، تلفن، ایمیل، ساعات پاسخگویی، آیکون‌ها و متون راهنما). - [x] **TASK-1.7 [Frontend Site]:** متصل کردن فرم تماس با ما در سایت اصلی به API و فراخوانی داینامیک اطلاعات تماس دفتر مرکزی از دیتابیس. --- ## 📍 بخش ۲: ارتقا و بهبودهای گسترده پنل ادمین (Admin Panel Enhancements) ### 📤 اپلود مالتی‌مدیا و سئو (Media, Attachments & SEO) - [x] **TASK-2.1 [Admin Panel UI]:** اضافه کردن قابلیت **Drag & Drop** به تمامی بخش‌های آپلود تصویر و فایل در پنل ادمین. - [x] **TASK-2.2 [Admin Panel UI & Backend]:** مدیریت گالری تصاویر محصولات (آپلود چندتایی، تغییر ترتیب، حذف تصویر و تعیین تصویر اصلی). - [x] **TASK-2.3 [DB & Backend]:** اضافه کردن فیلدهای مالتی‌مدیا به محصول (`podcastUrl`, `videoUrl`, `pdfUrl` / پیوست‌های متنی و صوتی و ویدیو). - [x] **TASK-2.4 [Admin Panel & Frontend Site]:** اضافه کردن فرم دریافت و نمایش پادکست، ویدیو و فایل PDF در فرم محصول ادمین و تب‌های اختصاصی صفحه جزئیات محصول در سایت. - [x] **TASK-2.5 [Backend Storage & S3/MinIO]:** پیاده‌سازی سرویس ذخیره‌سازی فایل‌های آپلودی بر روی Object Storage (S3/MinIO/Local Persistent) تا با Deploy‌های CI/CD فایل‌های آپلود شده پاک نشوند. - [x] **TASK-2.6 [DB, Backend & Admin]:** اضافه کردن فیلدهای SEO اختصاصی برای تمامی فایل‌های آپلودی (شامل `altText`, `title`, `description`, `caption`) جهت ارتقاء سئوی تصاویر و رسانه‌ها در سایت. ### 💰 اصلاح منطق قیمت‌گذاری (Price Logic Cleanup) - [x] **TASK-2.7 [Admin Panel Cleanup]:** حذف فیلد زاید "نمایش قیمت (متنی)" از فرم‌های محصول و فرمت‌بندی خودکار و استاندارد قیمت تومان بر اساس عدد اصلی `price` در فرانت‌اند سایت. ### 🎨 استانداردسازی کامپوننت‌ها و UI پنل ادمین - [x] **TASK-2.8 [Admin Panel UI]:** بازطراحی و استانداردسازی دکمه‌های پنل ادمین (دکمه‌های انتخاب از گالری، حذف، ثبت و...) به صورت کامپوننت Reusable با رعایت `whitespace-nowrap` و استایل یکپارچه. - [x] **TASK-2.9 [Admin Panel UI]:** بازطراحی کامپوننت Pagination در تمام صفحات ادمین (شامل صفحه اول/آخر، ۲ صفحه قبل/بعد، صفحه فعلی و قابلیت تایپ شماره صفحه جهت هدایت مستقیم). - [x] **TASK-2.10 [Admin Panel UI]:** اضافه کردن Pagination استاندارد به تمام بخش‌های مدیریت گالری رسانه‌ها. ### 🔐 رفع باگ‌های دسترسی و راهنماهای ادمین (Permissions & Tooltips) - [x] **TASK-2.11 [Admin Panel & Backend]:** بررسی و رفع خطای دسترسی "دسترسی شما به این بخش از پنل ادمین مجاز نمی‌باشد" در بخش CMS و بخش درخواست‌های B2B. - [x] **TASK-2.12 [Admin Panel UX]:** اضافه کردن آیکون علامت سوال (Help Tooltip) و راهنمای شفاف کنار تمامی فیلدها و بخش‌های پنل ادمین جهت راهنمایی کامل ادمین. - [x] **TASK-2.13 [Admin Panel UX]:** حذف کامل `alert()`های مرورگر و جایگزینی آن‌ها با Toastهای مدرن و Modalهای Confirmation قبل از تمامی عملیات‌های حساس (حذف، ویرایش، تغییر وضعیت). ### ⚙️ سیستم تنظیمات پیشرفته سایت (Advanced Site Settings) - [x] **TASK-2.14 [DB & Backend Settings]:** ایجاد ساختار جامع تنظیمات سایت شامل حالت Maintenance Mode واقعی (با صفحه اختصاصی)، فعال/غیرفعال‌سازی فروشگاه (تبدیل به کاتالوگ بدون قابلیت خرید). - [x] **TASK-2.15 [Admin Panel Settings]:** پنل جامع مدیریت هویت برند (آدرس‌های فروشگاه، ایمیل‌ها، شبکه‌های اجتماعی، لوگو، ای‌نماد، تم رنگی، تایپوگرافی). - [x] **TASK-2.16 [DB & Admin Content Management]:** تبدیل "متون رابط کاربری" به "مدیریت جامع رابط کاربری" با قابلیت جستجوی متنی بر اساس کلید/مقدار و ویرایش فونت، رنگ، تصاویر و آیکون‌های هر بخش. ### 🎥 ویدیوها، پزشکان و پروفایل ادمین (Videos, Doctors & Admin Profile) - [x] **TASK-2.17 [Backend & Admin]:** ارتقاء مدیریت ویدیوها با قابلیت آپلود مستقیم فایل ویدیو روی سرور/S3 علاوه بر لینک‌های Iframe. - [x] **TASK-2.18 [DB, Backend & Admin]:** پیاده‌سازی کامل CRUD مدیریت پزشکان/متخصصان (شامل بیوگرافی، تصویر، تخصص) و اتصال پزشک به ویدیوها، مقالات وبلاگ و نظرات کارشناسی محصولات. - [x] **TASK-2.19 [Admin Header UI]:** حذف دکمه خروج از Sidebar و اضافه کردن Dropdown کاربر در بالای صفحه سمت چپ (Header) شامل پروفایل، تنظیمات و خروج. - [x] **TASK-2.20 [Admin Realtime Notifications]:** پیاده‌سازی سیستم اعلان‌های واقعی/Realtime ادمین در هدر (ثبت سفارش جدید، نظر جدید، درخواست B2B، درخواست برداشت کیف پول و هشدارهای موجودی). ### 📊 داشبورد و آمار واقعی (Dashboard Analytics Fixes) - [x] **TASK-2.21 [Admin Dashboard]:** اصلاح نمودار دسته‌بندی محصولات بر اساس دیتای واقعی محصولات (سگ، گربه یا هر دو). - [x] **TASK-2.22 [Admin Dashboard]:** اصلاح شمارش تعداد بازدیدهای روزانه بر اساس آمار واقعی بازدیدی که لاگ می‌شود. - [x] **TASK-2.23 [Admin Knowledge Base]:** قابلیت انتخاب و کم/زیاد کردن لیست محصولات مرتبط در فرم ویرایش دانشنامه. ### 🔔 پوش نوتیفیکیشن و سیستم CRM (Push Notifications & CRM) - [x] **TASK-2.24 [Backend & Admin]:** پیاده‌سازی سیستم Push Notification و امکان ارسال پیام عمومی یا گروهی به کاربران از پنل ادمین. - [x] **TASK-2.25 [Backend CRM & SMS]:** پیاده‌سازی ماژول CRM هوشمند برای تحلیل رفتار کاربر (ارسال SMS ترغیب به خرید، بازگشت به سبد خرید رها شده و کمپین‌های تبلیغاتی). --- ## 📍 بخش ۳: استانداردسازی دکمه بازگشت (Standard Back Button) - [x] **TASK-3.1 [Frontend Site UI]:** پیاده‌سازی کامپوننت استاندارد و اتمیک BackButton با استفاده از `router.back()` و حفظ دقیق موقعیت Scroll صفحه قبلی کاربر. --- ## 📍 بخش ۴: پایش هوشمند مصرف مکمل‌ها (Smart Supplement Tracker Logic) - [x] **TASK-4.1 [Backend & Frontend Logic]:** بررسی، اصلاح و شفاف‌سازی الگوریتم پایش هوشمند مصرف مکمل‌ها (محاسبه زمان اتمام دوره بر اساس وزن حیوان، دوز مصرفی و ارسال هشدار SMS یادآوری تمدید خرید). --- ## 📍 بخش ۵: داشبورد کاربر و کیف پول (User Dashboard & Wallet Security) - [x] **TASK-5.1 [Frontend Protection]:** جلوگیری از دسترسی کاربران غیرلاگین به صفحه داشبورد و هدایت خودکار به صفحه ورود. - [x] **TASK-5.2 [Frontend Wallet UX]:** رفع مشکل نمایش پیام موفقیت کاذب هنگام شارژ کیف پول بدون لاگین و بهینه‌سازی سرعت فرآیند شارژ. - [x] **TASK-5.3 [Frontend & Backend Wallet]:** اصلاح استایل و Layout شارژ کیف پول برای اعداد بزرگ + فعال‌سازی منطق دکمه درخواست برداشت وجه (ثبت درخواست + ارسال SMS به کاربر و مدیر + مدیریت در پنل ادمین). - [x] **TASK-5.4 [Frontend UX]:** بررسی و رفع نمایش نشان "حساب تایید شده" برای کاربران غیر لاگین. --- ## 📍 بخش ۶: مدیریت داینامیک آمار خیرخواهانه (Charity Counter Management) - [x] **TASK-6.1 [DB, Backend & Admin]:** اضافه کردن قابلیت مدیریت داینامیک آمار کمک‌های خیرخواهانه (تعداد وعده‌های غذایی تامین شده، تعداد درمان‌ها و...) در پنل ادمین و نمایش دیتای واقعی در سایت. --- ## 📍 بخش ۷: بازطراحی صفحه ورود/ثبت‌نام (Login/Register Redesign) - [x] **TASK-7.1 [Frontend Site UI]:** بازطراحی چشم‌نواز و رفع ایرادات UX/UI صفحه ورود و ثبت‌نام کاربر. --- ## 📍 بخش ۸: رفع باگ عنوان صفحه محصول (Product Page Title Fix) - [x] **TASK-8.1 [Frontend Site Fix]:** رفع باگ عنوان صفحه محصول (عدم نمایش متن "محصول یافت نشد!" هنگام لود شدن دیتای محصول). --- ## 📍 بخش ۹: تنظیمات وب‌سرویس ملی‌پيامک و الگوها (SMS Service Patterns) - [x] **TASK-9.1 [Backend SMS Service]:** ست کردن نام کاربری `MELIPAYAMAK_USERNAME = 9364100228` و پیاده‌سازی متدهای ارسال سریع براساس پترن‌های تایید شده: - الگوی ۵۰۸۰۷۹ (کد تایید ورود) - الگوی ۵۰۸۰۸۱ (ثبت موفق سفارش) - الگوی ۵۰۸۰۸۲ (تحویل سفارش به پست) - الگوی ۵۰۸۰۸۳ (درخواست جدید همکار B2B) --- ## 📍 بخش ۱۰: بهینه‌سازی ورود با OTP و خواندن خودکار SMS - [x] **TASK-10.1 [Frontend OTP UX]:** پشتیبانی کامل از WebOTP API جهت خواندن خودکار کد SMS در موبایل. - [x] **TASK-10.2 [Frontend OTP UX]:** پشتیبانی از Paste یکباره کد ۵ رقمی روی اولین input و توزیع خودکار آن در سایر خانه‌ها. - [x] **TASK-10.3 [Frontend OTP UX]:** ارسال خودکار (Auto Submit) به محض پر شدن خانه پنجم و امکان ویرایش سریع در صورت نادرست بودن کد. --- ## 📍 بخش ۱۱: مرتب‌سازی پیشرفته لیست محصولات (Product Sorting) - [x] **TASK-11.1 [Frontend Site UI & Service]:** پیاده‌سازی گزینه‌های مرتب‌سازی در صفحه محصولات (محبوب‌ترین، جدیدترین، ارزان‌ترین، گران‌ترین، پرفروش‌ترین) و اعمال داینامیک آن در پارامترهای API. --- ## 📍 بخش ۱۲: بستن خودکار مودال‌ها و دراورها با کلیک بیرونی (Outside Click Backdrop Dismissal) - [x] **TASK-12.1 [Frontend Site UX]:** اضافه کردن Event Listener و Backdrop Click به تمام کشوها (Drawers)، فیلترهای نسخه موبایل، منوهای کشویی و مودال‌ها جهت بستن خودکار با کلیک روی فضای بیرونی. --- ## 📍 بخش ۱۳: بهبود و شفاف‌سازی پیام‌های خطا و اعتبارسنجی فرآیند ورود (Detailed Errors & Login Redirect Modals) - [x] **TASK-13.1 [Backend & Frontend]:** تبدیل خطاهای کلی سیستم به پیام‌های فیلدی مشخص (Field-level Validation Errors) و باز کردن خودکار Login Modal به‌جای نمایش پیام متنی عدم دسترسی. --- ## 📍 بخش ۱۴: اصلاح عدم نمایش پیام‌های فرم تماس در پنل ادمین (Contact Form Submissions Sync) - [x] **TASK-14.1 [Backend & Admin Panel]:** بررسی و رفع خطای عدم ثبت یا عدم فراخوانی پیام‌های فرم تماس با ما در پنل ادمین و به‌روزرسانی جدول مربوطه. --- ## 📍 بخش ۱۵: عیب‌یابی و فعال‌سازی کامل سرویس SMS (MeliPayamak Integration Fix) - [x] **TASK-15.1 [Backend SMS Service]:** بررسی لایه‌های فراخوانی وب‌سرویس ملی‌پیامک، رفع مشکل عدم ارسال پیامک‌ها و ثبت لاگ ارسال جهت اطمینان از تحویل به خطوط کاربران و ادمین. --- ## 📍 بخش ۱۶: بنر نوار متحرک و اسلاید شو هدر (Sliding Announcement Ticker Banner) - [x] **TASK-16.1 [Frontend Site UI]:** پیاده‌سازی بنر نوار متحرک (Marquee / News Ticker Style) در بالای هدر سایت جهت نمایش روان متون و اطلاعیه‌های طولانی بدون قطع شدن متن. --- ## 📍 بخش ۱۷: مدریت پیشرفته کاتالوگ‌مود و حالت صیانت/تعمیرات (Granular Maintenance & Catalog Mode Sub-Settings) - [x] **TASK-17.1 [DB, Backend & Admin Panel]:** پیاده‌سازی زیرتیک‌های هوشمند برای Catalog Mode (اختیاری کردن نمایش قیمت، غیرفعال‌سازی سبد خرید، غیرفعال‌سازی تسویه‌حساب) + فعال‌سازی واقعی Maintenance Mode و نمایش صفحه Coming Soon برای کاربران غیر ادمین. --- ## 📍 بخش ۱۸: محاسبات دقیق دوز مصرفی در محاسبه‌گر مکمل (Dynamic Product Dosage Calculator Fields) - [x] **TASK-18.1 [DB, Backend & Admin Panel]:** اضافه کردن فیلدهای متغیر و جدول منطق دوز مصرفی در فرم محصول پنل ادمین و متصل کردن محاسبات Calculator به مقادیر واقعی ثبت‌شده در دیتابیس. --- ## 📍 بخش ۱۹: مخفی‌سازی قیمت‌های B2B از API فرانت‌اند اصلی (B2B Price Security Scoping) - [x] **TASK-19.1 [Backend Security]:** حذف فیلد `wholesalePrice` از Responseهای عمومی API محصولات فرانت‌اند و محدود کردن آن صرفاً به کاربران احرازهویت‌شده با نقش B2B. --- ## 📍 بخش ۲۰: جستجو و انتخاب هوشمند علائم درمانی محصولات (Selective Auto-Complete Symptoms Tagging) - [x] **TASK-20.1 [Admin Panel UI & Backend]:** ساخت کامپوننت Auto-Complete چندتایی برای علائم درمانی محصول در پنل ادمین با امکان انتخاب از علائم موجود و درج آنی علائم جدید. --- ## 📍 بخش ۲۱: آپلود فایل با Drag & Drop در مدیریت رسانه (File Manager Drag & Drop Upload) - [x] **TASK-21.1 [Admin Panel UI]:** اضافه کردن لایه Dropzone و قابلیت Drag & Drop به مرکز مدیریت رسانه (Media Manager) پنل ادمین. --- ## 📍 بخش ۲۲: پشتیبانی دوگانه از لینک و فایل‌منجر برای پیوست‌های چندرسانه‌ای (Dual Link & FileManager Media Attachments) - [x] **TASK-22.1 [Admin Panel UI & DB]:** فراهم کردن امکان انتخاب پیوست‌های مالتی‌مدیا هم از طریق درج لینک مستقیم URL و هم انتخاب مستقیم از فایل‌منجر پنل ادمین. --- ## 📍 بخش ۲۳: سیستم تخفیف‌های پیشرفته و چندحالته (Advanced Flexible Discount Rules System) - [x] **TASK-23.1 [DB, Backend & Admin Panel]:** پیاده‌سازی منطق تخفیف درصدی یا عددی ثابت روی یک محصول، دسته‌بندی خاص یا نوع حیوان (سگ / گربه) در سیستم کد تخفیف و دیتابیس. --- ## 📍 بخش ۲۴: آیکون راهنما و Tooltip کدهای تخفیف (Discount Code Field Info Tooltip) - [x] **TASK-24.1 [Admin Panel & Frontend UI]:** اضافه کردن آیکون راهنما (Info Tooltip) به فیلدهای کد تخفیف با توضیحات شفاف درباره کارکرد فیلد و تغییرات ناشی از ویرایش آن.