add initial task list and project structure for AMN Marketplace

This commit is contained in:
moojttaba
2026-06-07 12:59:13 +03:30
parent ea038b5ed2
commit d93b48916d
3 changed files with 243 additions and 0 deletions

240
TASKS.md Normal file
View File

@@ -0,0 +1,240 @@
# 📋 فهرست وظایف پروژه AMN Marketplace
## 🎯 اولویت بندی وظایف
### ⚠️ **اولویت بالا (حتماً انجام شود)**
#### وظیفه ۹: اصلاح خطاهای پرداخت (کاهش خطاهای توکن)
- **مسیر**: `code/backend/src/services/payment/` + `amnScannerWebhookRoutes.ts`
- **توضیحات**:
- اصلاح خطاهای مربوط به توکن در پردازش پرداخت‌ها
- بهبود مکانیزم اعتبارسنجی توکن
- لاگ‌گیری کامل از تمام خطاهای توکن
- بررسی و اصلاح `paymentService.ts` و `amnScannerWebhookRoutes.ts`
- **تأثیر**: جلوگیری از از دست رفتن تراکنش‌ها
- **برآورد زمان**: 2-3 ساعت
---
#### وظیفه ۱: فیلتر و مرتب‌سازی کامل برای فروشندگان + پشتیبانی از دسته‌بندی
- **مسیر**: `code/backend/src/services/marketplace/marketplaceController.ts`
- **توضیحات**:
- اضافه کردن اندپوینت‌های فیلتر پیشرفته برای لیست فروشندگان
- پشتیبانی از فیلتر بر اساس:
- دسته‌بندی (Category)
- رتبه (Rating)
- محدوده قیمت
- وضعیت آنلاین/آفلاین
- منطقه جغرافیایی
- مرتب‌سازی بر اساس:
- تاریخ ثبت‌نام
- امتیاز
- تعداد فروش
- قیمت
- **تغییرات مورد نیاز**:
- Backend: `getSellers` endpoint با پارامترهای فیلتر
- Frontend: کامپوننت فیلتر در صفحه `/dashboard/shops`
- **برآورد زمان**: 4-5 ساعت
---
#### وظیفه ۲: انتخاب دسته‌بندی توسط فروشنده در تنظیمات فروشگاه
- **مسیر**: `code/backend/src/services/marketplace/shopSettingsStore.ts` + UI
- **توضیحات**:
- اضافه کردن فیلد `categoryIds` به مدل `ShopSettings`
- ایجاد رابط کاربری برای انتخاب چند دسته‌بندی
- امکان جستجوی فروشندگان بر اساس دسته‌بندی منتخب
- **تغییرات مورد نیاز**:
- Schema: اضافه کردن رابطه N:M بین users و categories
- Backend: API برای ذخیره و بازیابی دسته‌بندی‌های فروشنده
- Frontend: فرم انتخاب دسته‌بندی در `shop-settings/settings`
- **برآورد زمان**: 3 ساعت
---
#### وظیفه ۴: امکان آرشیو جدول‌ها (دیدن درخواست‌های آرشیو شده)
- **مسیر**: `code/backend/src/db/schema/purchaseRequest.ts`
- **توضیحات**:
- اضافه کردن فیلدهای `isArchived` و `archivedAt` به جدول‌های اصلی
- ایجاد اندپوینت‌های جدا برای مدیریت آرشیو
- امکان فیلتر کردن آیتم‌های آرشیو شده/نشده
- **تغییرات مورد نیاز**:
```typescript
// Schema changes
isArchived: boolean('is_archived').default(false)
archivedAt: timestamp('archived_at', { withTimezone: true })
archivedBy: uuid('archived_by') // کاربری که آرشیو کرده
```
- اندپوینت‌های جدید:
- `POST /api/marketplace/purchase-requests/:id/archive`
- `GET /api/marketplace/purchase-requests/archived`
- `POST /api/marketplace/purchase-requests/bulk-archive`
- **برآورد زمان**: 3-4 ساعت
---
#### وظیفه ۵: تاریخچه پرداخت در وب‌اپ (برای خریدار و فروشنده)
- **مسیر**: `code/backend/src/services/payment/paymentController.ts`
- **توضیحات**:
- در حال حاضر فقط در مینی‌اپ موجود است
- نیاز به ایجاد اندپوینت یکپارچه برای تاریخچه پرداخت‌ها
- نمایش برای هر دو نقش خریدار و فروشنده
- **تغییرات مورد نیاز**:
- Backend: `GET /api/payment/history` با فیلتر role-based
- Frontend: صفحه جدید `/dashboard/payment/history`
- **برآورد زمان**: 3 ساعت
---
#### وظیفه ۶: انتقال خودکار درخواست‌های تکمیل شده به آرشیو
- **مسیر**: `code/backend/src/services/marketplace/PurchaseRequestService.ts`
- **توضیحات**:
- هنگام تغییر وضعیت به `completed`، خودکار به آرشیو منتقل شود
- در مینی‌اپ صفحه آرشیو اضافه شود
- جلوگیری از شلوغی لیست اصلی
- **تغییرات مورد نیاز**:
- Hook در `updatePurchaseRequestStatus` برای آرشیو خودکار
- اندپوینت مینی‌اپ: `GET /api/telegram/archive`
- **برآورد زمان**: 2 ساعت
---
### 📌 **اولویت متوسط**
#### وظیفه ۳: اصلاح لینک وب‌اپ به تلگرام
- **مسیر**: `code/backend/src/services/telegram/` + Frontend
- **توضیحات**:
- بررسی و اصلاح لینک‌های تلگرام در وب‌اپ
- مطمئن شدن از اتصال صحیح مینی‌اپ به بات تلگرام
- تست کامل flow از وب‌اپ به تلگرام
- **برآورد زمان**: 1-2 ساعت
---
#### وظیفه ۷: ساخت صفحه اصلی مینی‌اپ
- **مسیر**: `code/frontend/src/routes/paths.ts` + Telegram UI
- **توضیحات**:
- طراحی و پیاده‌سازی صفحه اصلی مینی‌اپ
- نمایش آیتم‌های کلیدی:
- آمار کلی (تعداد درخواست‌ها، پرداخت‌ها، نوتیفیکیشن‌ها)
- اقدامات سریع (دکمه‌های دسترسی سریع)
- لیست آخرین فعالیت‌ها
- اعلان‌ها
- **برآورد زمان**: 4 ساعت
---
#### وظیفه ۸: جلوگیری از بازگشت دستیار هوشمند به مینی‌اپ
- **مسیر**: Navigation guards در Frontend
- **توضیحات**:
- مهندسی معکوس برای جلوگیری از بازگشت AI Assistant به مینی‌اپ
- بررسی جریان ناوبری در تلگرام
- اعمال محدودیت‌ها در صورت نیاز
- **برآورد زمان**: 2 ساعت
---
### 🎨 **اولویت پایین**
#### وظیفه ۱۰: باز شدن اپ مانند ولت + ویدیوهای آموزشی
- **توضیحات**:
- اصلاح UI برای باز شدن مشابه اپ‌های ولت
- تهیه ویدیوهای آموزشی:
- کانال فارسی
- کانال انگلیسی
- مستندات استفاده از اپ
- **برآورد زمان**: 5 ساعت (شامل تهیه محتوا)
---
## 📊 خلاصه زمانی و اولویت‌ها
| # | وظیفه | اولویت | زمان تخمینی | وضعیت |
|---|--------|--------|--------------|--------|
| 9 | اصلاح خطاهای پرداخت | ⭐⭐⭐⭐⭐ | 2-3 ساعت | ⏳ |
| 1 | فیلتر/مرتب‌سازی فروشندگان | ⭐⭐⭐⭐ | 4-5 ساعت | ⏳ |
| 2 | دسته‌بندی فروشندگان | ⭐⭐⭐⭐ | 3 ساعت | ⏳ |
| 4 | سیستم آرشیو | ⭐⭐⭐⭐ | 3-4 ساعت | ⏳ |
| 5 | تاریخچه پرداخت وب‌اپ | ⭐⭐⭐⭐ | 3 ساعت | ⏳ |
| 6 | آرشیو خودکار درخواست‌ها | ⭐⭐⭐⭐ | 2 ساعت | ⏳ |
| 3 | لینک تلگرام | ⭐⭐⭐ | 1-2 ساعت | ⏳ |
| 7 | صفحه اصلی مینی‌اپ | ⭐⭐⭐ | 4 ساعت | ⏳ |
| 8 | مسدود کردن AI Assistant | ⭐⭐⭐ | 2 ساعت | ⏳ |
| 10 | UI ولت + ویدیوها | ⭐⭐ | 5 ساعت | ⏳ |
** کل زمان تخمینی: ** ~30 ساعت
---
## 🚀 پیشنهاد ترتیب اجرا
### فاز ۱: اصلاحات بحرانی (2-3 روز)
1. وظیفه ۹: اصلاح خطاهای پرداخت
2. وظیفه ۳: لینک تلگرام
### فاز ۲: ویژگی‌های اصلی (3-4 روز)
3. وظیفه ۱: فیلتر و مرتب‌سازی فروشندگان
4. وظیفه ۲: دسته‌بندی فروشندگان
5. وظیفه ۴: سیستم آرشیو
6. وظیفه ۵: تاریخچه پرداخت
7. وظیفه ۶: آرشیو خودکار
### فاز ۳: تجربه کاربری (2-3 روز)
8. وظیفه ۷: صفحه اصلی مینی‌اپ
9. وظیفه ۸: مسدود کردن AI Assistant
### فاز ۴: مستندات و نهایی‌سازی (1 روز)
10. وظیفه ۱۰: ویدیوها و اصلاحات نهایی
---
## 📁 ساختار فایل‌ها و مسیرها
```
code/
├── backend/
│ ├── src/
│ │ ├── db/
│ │ │ └── schema/ # Schemaهای PostgreSQL
│ │ ├── services/
│ │ │ ├── marketplace/ # کنترلرها و سرویس‌های بازار
│ │ │ ├── payment/ # سرویس‌های پرداخت
│ │ │ └── telegram/ # سرویس‌های تلگرام
│ │ └── routes/ # مسیریابی API
│ └── ...
└── frontend/
├── src/
│ ├── routes/ # مسیرهای فرانت‌اند
│ ├── sections/ # صفحات و کامپوننت‌ها
│ └── ...
└── ...
```
---
## 🔧 دستورالعمل‌های فنی
### برای شروع هر وظیفه:
1. branch جدید از `main` ایجاد کنید: `git checkout -b feature/[task-number]-[description]`
2. تغییرات را در smallest possible unit اعمال کنید
3. تست‌های واحد بنویسید
4. بعد از تکمیل، Pull Request ایجاد کنید
### اسم branchها:
- `feature/9-fix-payment-token-errors`
- `feature/1-seller-filter-sort-category`
- `feature/4-archive-functionality`
- و...
---
## 📞 تماس با تیم
- برای سوال در مورد هر وظیفه، در کانال تلگرام پروژه مطرح کنید
- برای بررسی کد، از Pull Request استفاده کنید
- برای تست، از محیط development استفاده کنید
---
*تاریخ ایجاد: 2026-06-07*
*ونیرد: Mistral Vibe*