{ "tasks": [ { "id": "EPIC-01-TASK-01", "title": "Backend NestJS: HeroBanners, VetTestimonials & SmartAdvisorRules CMS Module", "description": "Create NestJS backend module (controllers, services, DTOs) for full CRUD management of HeroBanners, VetTestimonials, and SmartAdvisorRules under /api/v1/admin/* and public endpoints.", "architectural_layer": "business_logic", "assigned_role": "05_dev_backend", "priority": "HIGH", "status": "completed", "max_files_allowed": 5, "estimated_minutes": 30, "dependency_task_ids": [], "acceptance_criteria": [ "ایجاد سرویس‌ها و کنترلرهای CMS برای بنرها، نظرات دامپزشکان و قوانین دستیار هوشمند", "پشتیبانی کامل از CRUD در مسیرهای /api/v1/admin/* با احراز هویت ادمین" ], "sub_steps": [ { "index": 1, "name": "create_cms_dto", "description": "Create DTOs for HeroBanner, VetTestimonial, SmartAdvisorRule", "status": "done" }, { "index": 2, "name": "create_cms_service", "description": "Implement CmsService in backend", "status": "done" }, { "index": 3, "name": "create_cms_controller", "description": "Implement CmsController under /api/v1/admin/cms and /api/v1/cms", "status": "done" } ] }, { "id": "EPIC-01-TASK-02", "title": "Backend NestJS: B2B Wholesale Application & License Upload API", "description": "Create endpoints for B2B wholesale license upload (/api/v1/wholesale/apply) and admin verification approval (/api/v1/admin/wholesale/requests) to upgrade user roles to User_Wholesale.", "architectural_layer": "business_logic", "assigned_role": "05_dev_backend", "priority": "HIGH", "status": "completed", "max_files_allowed": 4, "estimated_minutes": 25, "dependency_task_ids": ["EPIC-01-TASK-01"], "acceptance_criteria": [ "ثبت درخواست همکاری عمده‌فروشی و آپلود پروانه کلینیک/داروخانه", "لیست‌گیری و تایید/رد درخواست‌ها در کنترلر Admin و ارتقای نقش کاربر" ], "sub_steps": [ { "index": 1, "name": "create_wholesale_dto", "description": "Create WholesaleApplyDto", "status": "done" }, { "index": 2, "name": "create_wholesale_service", "description": "Implement WholesaleService", "status": "done" }, { "index": 3, "name": "create_wholesale_controller", "description": "Implement WholesaleController in backend", "status": "done" } ] }, { "id": "EPIC-01-TASK-03", "title": "Backend NestJS: Prescription Attachment & Rx Verification Module", "description": "Create endpoints for attaching uploaded vet prescriptions to orders with requiresRx=true and admin prescription verification.", "architectural_layer": "business_logic", "assigned_role": "05_dev_backend", "priority": "HIGH", "status": "completed", "max_files_allowed": 3, "estimated_minutes": 20, "dependency_task_ids": ["EPIC-01-TASK-02"], "acceptance_criteria": [ "پشتیبانی از آپلود نسخه دارویی سگ و گربه و ثبت در سفارشات نسخه دار", "تایید نسخه پزشکی توسط مدیر سیستم" ], "sub_steps": [ { "index": 1, "name": "add_rx_field_to_order", "description": "Update Order model/DTO with prescriptionUrl", "status": "done" }, { "index": 2, "name": "implement_rx_verification", "description": "Implement prescription verification in OrdersService", "status": "done" } ] }, { "id": "EPIC-02-TASK-01", "title": "Customer App Next.js: Dynamic Hero Slider & Vet Testimonials Integration", "description": "Replace static arrays in Hero.tsx and VetGallery.tsx with dynamic API calls fetching live HeroBanner and VetTestimonial records from NestJS API.", "architectural_layer": "presentation_ui", "assigned_role": "06_dev_frontend", "priority": "HIGH", "status": "completed", "max_files_allowed": 4, "estimated_minutes": 25, "dependency_task_ids": ["EPIC-01-TASK-01"], "acceptance_criteria": [ "دریافت پویا و بدون داده هاردکد بنرهای اصلی و نظرات دامپزشکان", "استفاده از next/image و رعایت کامل قواعد Next.js" ], "sub_steps": [ { "index": 1, "name": "wire_hero_component", "description": "Wire Hero.tsx to fetch banners from API", "status": "done" }, { "index": 2, "name": "wire_vet_gallery", "description": "Wire VetGallery.tsx to fetch vet testimonials from API", "status": "done" } ] }, { "id": "EPIC-02-TASK-02", "title": "Customer App Next.js: SmartAdvisor Dynamic Rules & Real Product Recommendations", "description": "Wire SmartAdvisor.tsx to fetch live advisor rules and products dynamically from NestJS backend, displaying real medical rationales for recommended Canina products.", "architectural_layer": "presentation_ui", "assigned_role": "06_dev_frontend", "priority": "HIGH", "status": "completed", "max_files_allowed": 3, "estimated_minutes": 25, "dependency_task_ids": ["EPIC-02-TASK-01"], "acceptance_criteria": [ "توصیه هوشمند محصولات کانینا بر اساس قوانین دیتابیس و علت تجویز پزشکی", "محاسبه دوز دقیق دارویی بر اساس وزن بدن پت" ], "sub_steps": [ { "index": 1, "name": "connect_smart_advisor_api", "description": "Fetch SmartAdvisorRules from backend", "status": "done" }, { "index": 2, "name": "render_medical_rationale", "description": "Render medical rationale and dosage calculation", "status": "done" } ] }, { "id": "EPIC-02-TASK-03", "title": "Customer App Next.js: B2B Wholesale Portal & Bulk Matrix Real Order Flow", "description": "Connect B2BPortal.tsx to wholesale registration API, display verified 30% wholesale discount pricing, and submit bulk orders directly to backend.", "architectural_layer": "presentation_ui", "assigned_role": "06_dev_frontend", "priority": "HIGH", "status": "completed", "max_files_allowed": 4, "estimated_minutes": 30, "dependency_task_ids": ["EPIC-02-TASK-02"], "acceptance_criteria": [ "ثبت درخواست ثبت‌نام کلینیک/داروخانه با آپلود پروانه کسب", "ثبت مستقیم سفارش حجمی در دیتابیس با قیمت‌های عمده همکار" ], "sub_steps": [ { "index": 1, "name": "wire_b2b_application_modal", "description": "Build B2B application modal in B2BPortal.tsx", "status": "done" }, { "index": 2, "name": "wire_b2b_checkout", "description": "Connect bulk matrix submit to NestJS Orders API", "status": "done" } ] }, { "id": "EPIC-02-TASK-04", "title": "Customer App Next.js: Prescription Upload Modal & Rx Order Flow", "description": "Wire PrescriptionUploadModal.tsx to upload vet prescription files to NestJS media API and attach them to Rx products during checkout.", "architectural_layer": "presentation_ui", "assigned_role": "06_dev_frontend", "priority": "HIGH", "status": "completed", "max_files_allowed": 3, "estimated_minutes": 20, "dependency_task_ids": ["EPIC-02-TASK-03"], "acceptance_criteria": [ "آپلود نسخه دارویی برای محصولات دارای تگ نسخه پزشک (requiresRx)", "اتصال نسخه به سبد خرید و سفارش آنلاین" ], "sub_steps": [ { "index": 1, "name": "wire_prescription_upload", "description": "Wire PrescriptionUploadModal to media service", "status": "done" }, { "index": 2, "name": "attach_rx_to_cart", "description": "Attach uploaded prescription ID to cart store", "status": "done" } ] }, { "id": "EPIC-03-TASK-01", "title": "Admin Panel React/Vite: Hero Banners & Vet Testimonials Dynamic CMS Page", "description": "Create CMS.tsx page in Admin Panel for full CRUD management of Hero Banners (title, subtitle, image, buttonText, link, order) and Vet Testimonials.", "architectural_layer": "presentation_ui", "assigned_role": "06_dev_frontend", "priority": "HIGH", "status": "completed", "max_files_allowed": 4, "estimated_minutes": 30, "dependency_task_ids": ["EPIC-02-TASK-04"], "acceptance_criteria": [ "افزودن، ویرایش، حذف و تغییر ترتیب بنرهای صفحه اصلی", "مدیریت نظرات و رتبه‌بندی دامپزشکان" ], "sub_steps": [ { "index": 1, "name": "create_cms_page", "description": "Create CMS.tsx in admin-panel/src/pages", "status": "done" }, { "index": 2, "name": "add_cms_sidebar_link", "description": "Add CMS link to Admin Panel sidebar navigation", "status": "done" } ] }, { "id": "EPIC-03-TASK-02", "title": "Admin Panel React/Vite: Wholesale Applications & License Approval Page", "description": "Create WholesaleApplications.tsx page in Admin Panel to inspect uploaded business licenses, approve/reject clinic applications, and manage B2B roles.", "architectural_layer": "presentation_ui", "assigned_role": "06_dev_frontend", "priority": "HIGH", "status": "completed", "max_files_allowed": 4, "estimated_minutes": 25, "dependency_task_ids": ["EPIC-03-TASK-01"], "acceptance_criteria": [ "جدول کامل در خواست‌های ثبت‌نام همکاران با امکان پیش‌نمایش مدارک", "دکمه ارتقای نقش به User_Wholesale و ارسال هشدار وضعیت" ], "sub_steps": [ { "index": 1, "name": "create_wholesale_applications_page", "description": "Create WholesaleApplications.tsx page", "status": "done" }, { "index": 2, "name": "wire_approval_actions", "description": "Connect approve/reject actions to backend API", "status": "done" } ] }, { "id": "EPIC-04-TASK-01", "title": "SEO & Content: Full On-Page & Schema.org JSON-LD Implementation", "description": "Implement comprehensive SEO metadata, canonical URLs, OpenGraph tags, and Product/MedicalWebPage JSON-LD schemas across Next.js app, populated with real Canina Germany product data.", "architectural_layer": "presentation_ui", "assigned_role": "12_seo_content", "priority": "HIGH", "status": "completed", "max_files_allowed": 5, "estimated_minutes": 30, "dependency_task_ids": ["EPIC-03-TASK-02"], "acceptance_criteria": [ "پیاده‌سازی کامل متادیتای پویا و JSON-LD برای تمام صفحات محصولات، دسته‌ها و دانشنامه علمی", "تولید نقشه سایت XML پویا و فایل robots.txt" ], "sub_steps": [ { "index": 1, "name": "implement_product_jsonld", "description": "Add Product JSON-LD script component", "status": "done" }, { "index": 2, "name": "implement_sitemap_xml", "description": "Generate dynamic XML sitemap route in Next.js", "status": "done" } ] }, { "id": "EPIC-05-TASK-01", "title": "Automated Testing & Build Verification Suite (Backend + Frontends)", "description": "Write comprehensive Jest unit/integration tests for NestJS services/guards and React component integration tests for Cart, B2BPortal, and Admin Panel pages. Verify npm run build across all 3 apps.", "architectural_layer": "testing", "assigned_role": "07_qa_engineer", "priority": "HIGH", "status": "completed", "max_files_allowed": 5, "estimated_minutes": 30, "dependency_task_ids": ["EPIC-04-TASK-01"], "acceptance_criteria": [ "پوشش بالای ۸۰٪ تست‌های واحد برای سرویس‌های اصلی بک‌اند و فرانت‌اند", "اجرای موفقیت‌آمیز npm run build بدون خطا در هر ۳ بخش پروژه" ], "sub_steps": [ { "index": 1, "name": "write_backend_jest_tests", "description": "Write NestJS integration tests", "status": "done" }, { "index": 2, "name": "write_frontend_tests", "description": "Write React component tests", "status": "done" }, { "index": 3, "name": "verify_all_builds", "description": "Run npm run build in backend, application, and admin-panel", "status": "done" } ] } ], "metadata": { "total": 11, "completed": 11, "in_progress": 0, "pending": 0, "generated_at": "2026-07-26T20:15:00Z", "decomposition_pass": 4 } }