235 lines
13 KiB
JSON
235 lines
13 KiB
JSON
{
|
|
"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": "pending",
|
|
"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": "pending" },
|
|
{ "index": 2, "name": "create_wholesale_service", "description": "Implement WholesaleService", "status": "pending" },
|
|
{ "index": 3, "name": "create_wholesale_controller", "description": "Implement WholesaleController in backend", "status": "pending" }
|
|
]
|
|
},
|
|
{
|
|
"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": "pending",
|
|
"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": "pending" },
|
|
{ "index": 2, "name": "implement_rx_verification", "description": "Implement prescription verification in OrdersService", "status": "pending" }
|
|
]
|
|
},
|
|
{
|
|
"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": "pending",
|
|
"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": "pending" },
|
|
{ "index": 2, "name": "wire_vet_gallery", "description": "Wire VetGallery.tsx to fetch vet testimonials from API", "status": "pending" }
|
|
]
|
|
},
|
|
{
|
|
"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": "pending",
|
|
"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": "pending" },
|
|
{ "index": 2, "name": "render_medical_rationale", "description": "Render medical rationale and dosage calculation", "status": "pending" }
|
|
]
|
|
},
|
|
{
|
|
"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": "pending",
|
|
"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": "pending" },
|
|
{ "index": 2, "name": "wire_b2b_checkout", "description": "Connect bulk matrix submit to NestJS Orders API", "status": "pending" }
|
|
]
|
|
},
|
|
{
|
|
"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": "pending",
|
|
"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": "pending" },
|
|
{ "index": 2, "name": "attach_rx_to_cart", "description": "Attach uploaded prescription ID to cart store", "status": "pending" }
|
|
]
|
|
},
|
|
{
|
|
"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": "pending",
|
|
"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": "pending" },
|
|
{ "index": 2, "name": "add_cms_sidebar_link", "description": "Add CMS link to Admin Panel sidebar navigation", "status": "pending" }
|
|
]
|
|
},
|
|
{
|
|
"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": "pending",
|
|
"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": "pending" },
|
|
{ "index": 2, "name": "wire_approval_actions", "description": "Connect approve/reject actions to backend API", "status": "pending" }
|
|
]
|
|
},
|
|
{
|
|
"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": "pending",
|
|
"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": "pending" },
|
|
{ "index": 2, "name": "implement_sitemap_xml", "description": "Generate dynamic XML sitemap route in Next.js", "status": "pending" }
|
|
]
|
|
},
|
|
{
|
|
"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": "pending",
|
|
"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": "pending" },
|
|
{ "index": 2, "name": "write_frontend_tests", "description": "Write React component tests", "status": "pending" },
|
|
{ "index": 3, "name": "verify_all_builds", "description": "Run npm run build in backend, application, and admin-panel", "status": "pending" }
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"total": 11,
|
|
"completed": 1,
|
|
"in_progress": 1,
|
|
"pending": 9,
|
|
"generated_at": "2026-07-26T19:25:00Z",
|
|
"decomposition_pass": 4
|
|
}
|
|
} |