canina/.ai_agency/memory/backlog.json
parsa aghaei a3291cc468
Some checks failed
Deploy Canina / deploy (push) Has been cancelled
feat(agency): implement Farsi error handling, trust seals page, and MeliPayamak SMS integration
2026-07-29 16:40:42 +03:30

185 lines
10 KiB
JSON

{
"tasks": [
{
"id": "EPIC-20-TASK-01",
"title": "Backend NestJS: Standardized Exception Filter & Farsi Error Schema",
"description": "Create CustomHttpExceptionFilter and Farsi error response schema across all NestJS endpoints for detailed, localized, and structured error responses.",
"architectural_layer": "infrastructure",
"assigned_role": "05_dev_backend",
"priority": "HIGH",
"status": "completed",
"max_files_allowed": 5,
"estimated_minutes": 30,
"dependency_task_ids": [],
"acceptance_criteria": [
"ایجاد فیلتر استثنای سفارشی CustomHttpExceptionFilter در NestJS",
"بازگرداندن پاسخ‌های خطا با فرمت مشخص شامل statusCode, message (فارسی), code, details, timestamp, path",
"تست و اطمینان از عملکرد یکپارچه در تمام کنترلرها"
],
"sub_steps": [
{ "index": 1, "name": "create_error_response_schema", "description": "Define ErrorResponseDto and error code enums", "status": "done" },
{ "index": 2, "name": "implement_exception_filter", "description": "Implement CustomHttpExceptionFilter in backend/src/common/filters", "status": "done" },
{ "index": 3, "name": "bind_global_filter", "description": "Bind global exception filter in main.ts", "status": "done" }
]
},
{
"id": "EPIC-20-TASK-02",
"title": "Backend NestJS: Farsi ValidationPipe & Prisma Exception Mapper",
"description": "Customize NestJS ValidationPipe and Prisma exception mapping to produce friendly Farsi messages for DTO validation errors and database constraints (P2002, P2025).",
"architectural_layer": "infrastructure",
"assigned_role": "05_dev_backend",
"priority": "HIGH",
"status": "completed",
"max_files_allowed": 4,
"estimated_minutes": 25,
"dependency_task_ids": ["EPIC-20-TASK-01"],
"acceptance_criteria": [
"ترجمه و نگاشت تمام خطاهای ValidationPipe به پیام‌های توصیفی فارسی",
"مدیریت خطاهای دیتابیس پریزما (Prisma Known Error Code Mapper) به خطاهای کاربرپسند فارسی"
],
"sub_steps": [
{ "index": 1, "name": "customize_validation_pipe", "description": "Configure ValidationPipe exceptionFactory for Farsi field messages", "status": "done" },
{ "index": 2, "name": "implement_prisma_error_mapper", "description": "Implement PrismaErrorFilter for database constraint handling", "status": "done" }
]
},
{
"id": "EPIC-20-TASK-03",
"title": "Customer App Next.js: Standardized Error Interceptor & Farsi Toast Handler",
"description": "Update application/lib/services/api.ts to parse standardized error schemas and display structured Farsi toasts and inline field error alerts.",
"architectural_layer": "presentation_ui",
"assigned_role": "06_dev_frontend",
"priority": "HIGH",
"status": "completed",
"max_files_allowed": 4,
"estimated_minutes": 25,
"dependency_task_ids": ["EPIC-20-TASK-01"],
"acceptance_criteria": [
"استخراج پیام‌های فارسی و جزئیات فیلدها از لایه API",
"نمایش اعلان‌های حرفه‌ای Farsi Toast از طریق Sonner در اپلیکیشن فرانت"
],
"sub_steps": [
{ "index": 1, "name": "update_api_client_error_parser", "description": "Add error parser to lib/services/api.ts", "status": "done" },
{ "index": 2, "name": "integrate_toast_notifications", "description": "Connect API error parser to Sonner toast notification system", "status": "done" }
]
},
{
"id": "EPIC-20-TASK-04",
"title": "Admin Panel React: Global Axios Interceptor & Auth Error Handling",
"description": "Implement global Axios response interceptor in admin-panel to handle 401 unauthenticated redirect, 403 forbidden alerts, and 500 Farsi toast messages.",
"architectural_layer": "presentation_ui",
"assigned_role": "06_dev_frontend",
"priority": "HIGH",
"status": "completed",
"max_files_allowed": 3,
"estimated_minutes": 20,
"dependency_task_ids": ["EPIC-20-TASK-01"],
"acceptance_criteria": [
"ایجاد Axios Interceptor در پنل ادمین برای مدیریت خودکار خطاهای احراز هویت (۴۰۱)",
"نمایش پیام‌های فارسی توصیفی خطا در بخش مدیریت"
],
"sub_steps": [
{ "index": 1, "name": "create_axios_interceptor", "description": "Add response interceptor in admin-panel src/services/api.ts", "status": "done" }
]
},
{
"id": "EPIC-21-TASK-01",
"title": "Customer App Next.js: Trust Seals & Enamad Dedicated Page (/trust-seals)",
"description": "Design and build premium Farsi Trust Seals page (/trust-seals and /namad) featuring eNamad iframe, Samandehi badge, Veterinary Organization licenses, and authenticity guarantees.",
"architectural_layer": "presentation_ui",
"assigned_role": "06_dev_frontend",
"priority": "MEDIUM",
"status": "completed",
"max_files_allowed": 5,
"estimated_minutes": 35,
"dependency_task_ids": [],
"acceptance_criteria": [
"ایجاد مسیر اختصاصی /trust-seals و /namad با طراحی مدرن و شکیل",
"ادغام کامپوننت نماد الکترونیکی (eNamad) به همراه حالت لودینگ و fallback",
"نمایش مشخصات پروانه‌ها و مجوزهای سازمان دامپزشکی و غذا و دارو"
],
"sub_steps": [
{ "index": 1, "name": "create_trust_seals_page", "description": "Create app/trust-seals/page.tsx with responsive glassmorphism design", "status": "done" },
{ "index": 2, "name": "implement_enamad_component", "description": "Build reusable EnamadBadge component with async loading", "status": "done" },
{ "index": 3, "name": "add_footer_trust_links", "description": "Link trust seals page in Footer.tsx and add inline footer badges", "status": "done" }
]
},
{
"id": "EPIC-22-TASK-01",
"title": "Backend NestJS: MeliPayamak SMS Integration Module (Pattern/Service Line)",
"description": "Build modular SmsService using MeliPayamak REST API / Pattern Service to send ultra-fast OTPs, order notifications, and admin alerts bypassing user blacklists.",
"architectural_layer": "business_logic",
"assigned_role": "05_dev_backend",
"priority": "HIGH",
"status": "completed",
"max_files_allowed": 4,
"estimated_minutes": 30,
"dependency_task_ids": [],
"acceptance_criteria": [
"پیاده‌سازی SmsModule و SmsService با قابلیت متصل شدن به وب‌سرویس پترن ملی‌پيامك",
"پشتیبانی از متغیرهای پیکربندی API Token, Shared Service Number و Pattern Body"
],
"sub_steps": [
{ "index": 1, "name": "create_sms_module", "description": "Create SmsModule, SmsService, and configuration schema", "status": "done" },
{ "index": 2, "name": "implement_melipayamak_pattern_client", "description": "Implement HTTP pattern sending methods for MeliPayamak API", "status": "done" }
]
},
{
"id": "EPIC-22-TASK-02",
"title": "Backend NestJS: OTP SMS Authentication Flow Integration",
"description": "Connect user register/login and password reset flows in AuthModule to SmsService for instant OTP code transmission.",
"architectural_layer": "business_logic",
"assigned_role": "05_dev_backend",
"priority": "HIGH",
"status": "completed",
"max_files_allowed": 3,
"estimated_minutes": 25,
"dependency_task_ids": ["EPIC-22-TASK-01"],
"acceptance_criteria": [
"ارسال کد تایید ۴/۶ رقمی ثبت‌نام و ورود از طریق سرویس پترن ملی‌پيامك",
"اعتبارسنجی انقضای کد OTP در دیتابیس/ردیس"
],
"sub_steps": [
{ "index": 1, "name": "connect_auth_service_to_sms", "description": "Call SmsService.sendOtp in Authservice register and forgot-password flows", "status": "done" }
]
},
{
"id": "EPIC-22-TASK-03",
"title": "Backend NestJS: Order Status SMS Notifications & Track Link Dispatch",
"description": "Trigger automated SMS dispatches to customers upon Order Confirmation, Order Shipment (with tracking code), and Cancellation.",
"architectural_layer": "business_logic",
"assigned_role": "05_dev_backend",
"priority": "MEDIUM",
"status": "completed",
"max_files_allowed": 3,
"estimated_minutes": 20,
"dependency_task_ids": ["EPIC-22-TASK-01"],
"acceptance_criteria": [
"ارسال پیامک خودکار تایید سفارش همراه با شماره فاکتور پس از پرداخت موفق",
"ارسال پیامک تغییر وضعیت به 'ارسال شد' به همراه کد رهگیری پستی"
],
"sub_steps": [
{ "index": 1, "name": "add_order_sms_hooks", "description": "Hook SmsService into OrdersService updateStatus and placeOrder methods", "status": "done" }
]
},
{
"id": "EPIC-22-TASK-04",
"title": "Backend NestJS: Pet Care Reminders & Admin Alert SMS Services",
"description": "Implement Cron Job for pet health reminders (vaccination, deworming) and admin notification alerts on B2B wholesale applications.",
"architectural_layer": "business_logic",
"assigned_role": "05_dev_backend",
"priority": "MEDIUM",
"status": "completed",
"max_files_allowed": 4,
"estimated_minutes": 25,
"dependency_task_ids": ["EPIC-22-TASK-01"],
"acceptance_criteria": [
"ارسال پیامک خودکار یادآوری زمان واکسیناسیون و انگل‌زدایی پت‌ها",
"ارسال پیامک اطلاع‌رسانی به مدیر فروشگاه در زمان ثبت درخواست‌های همکاری عمده"
],
"sub_steps": [
{ "index": 1, "name": "implement_pet_care_cron_sms", "description": "Create PetsCronService to query upcoming reminders and dispatch SMS", "status": "done" },
{ "index": 2, "name": "implement_wholesale_admin_sms_alert", "description": "Trigger SMS alert to admin mobile on new wholesale application", "status": "done" }
]
}
]
}